gpt4 book ai didi

javascript - Angular BindOnce,什么可以阻止它工作?

转载 作者:行者123 更新时间:2023-11-29 18:11:30 24 4
gpt4 key购买 nike

我们目前正在迁移到 Angular 1.3,同时测试 bindOnce 功能我遇到了这个问题:确切的代码片段......

Controller 代码:

this.value = 'value';
this.clickTest = function () {
this.value = 'changed';
};

HTML:

//cm is the ControllerAs variable defined in the route
<p> {{ ::cm.value}} </p>
<button ng-click="cm.clickTest()"> CLICK </button>

...在一个 Controller 中工作正常,但在另一个 Controller 中却不行 - 在工作 Controller 中,点击事件不会改变值,而在非工作 Controller 中它会改变值-(代码在两个 Controller 中完全相同,路由更改并且显然还有其他更改)。为了有更好的测试环境,两个 Controller 都被清空了。

现在我想知道的是:有什么东西可以阻止 bindOnce 功能按预期工作吗?尽管在 View 中使用了正确的语法 (::),是否有一些东西强制 Angular 代码不删除观察者或再次启用它?

我正在使用 Angular 1.3.2

最佳答案

我认为点击后值没有改变,this 上下文的 bcoz 因 clickTest 函数而改变

尝试下面的代码,希望它有效

var vm = this;
vm.value = 'value';
vm.clickTest = function () {
vm.value = 'changed';
};
return vm;

而对于 bindOnce,我认为在 Controller 中更改值后不可能再次绑定(bind),并且为了测试代码,我们不应该担心 View 。

关于javascript - Angular BindOnce,什么可以阻止它工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26999107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com