加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

anglejs – KO.Computed等效于Angular/Breeze Initializer

发布时间:2020-12-17 08:11:06 所属栏目:安全 来源:网络整理
导读:试图更深入地了解Angular如何对待数据绑定和理解更好,有一件事很难让我的头脑 – 在Knockout中,我使用一个计算来跟踪属性的更改。在这个角度来说,把这个逻辑转化为这个观点,这对我来说是微不足道的,但如果这样做,我明白了。 我的问题是当我用Breeze /
试图更深入地了解Angular如何对待数据绑定和理解更好,有一件事很难让我的头脑 –

在Knockout中,我使用一个计算来跟踪属性的更改。在这个角度来说,把这个逻辑转化为这个观点,这对我来说是微不足道的,但如果这样做,我明白了。

我的问题是当我用Breeze / Angular初始化一个新的实体时,如何创建类似于计算的属性,在实体属性发生更改时通知它们?

myEntity.fullName = ko.computed(function () {
    return myEntity.firstName + ' ' + myEntity.LastName;
});

在Angular将相当于

myEntity.fullName = function () {
    return myEntity.firstName + ' ' + myEntity.LastName;
};

这样做是否正确跟踪实体?

你是正确的,只是使它成为一个功能。如果您所示的实体被添加到$ scope,那么你将访问这样的属性:
<span class="fullname">{{ user.fullName() }}</span>

每当Angular运行$ digest循环时,它将检查对bound属性的更改。在这种情况下,这意味着它将调用fullName()函数并检查结果是否已更改。如果有的话,任何具有附加到该项目的$ watch的东西(包括简单绑定)将被通知该更改。

然而,这种技术的一个注意事项是确保在您的功能中执行的操作相对较快,也没有副作用。这样的绑定函数将在整个应用程序中被多次调用。

如果需要一个更复杂的函数,那么最好在控制器中处理它,并在更改对象时手动更新对象上的属性。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读