gpt4 book ai didi

javascript - 更新指令的范围并使用另一个指令进行观察

转载 作者:行者123 更新时间:2023-12-02 15:22:56 24 4
gpt4 key购买 nike

问题是这样的:

我尝试做这样的事情:

  1. 点击指令会触发事件
  2. 事件将数据发送到 rootScope 函数,该函数用新数据设置范围变量值
  3. 另一个指令的模板中有一个 ng-model,它应该反射(reflect)之前更改的变量
  4. 数据应在 View 和模型中更新。模型没问题(更新完成),但 View 更新似乎不会自动触发,它仅在我单击“显示按钮”时更新(参见 fiddle )

这是我制作的相应jsfiddle,带有注释:

http://jsfiddle.net/wkmm576m/7/

这是我认为造成麻烦的代码...:

app.directive('addEditInput', function() {
return {
restrict : 'E',
template : '<div id="editForm"><input type="text" ng-model="currentVar.name" /><br/></div>'
}
});

事实上,我返回了一个模板,带有 ng-model。但是当 ng-model 的值从其他地方发生变化时,它不会更新......

说实话,我对指令和范围通信 - 数据有点困惑......

感谢您的阅读/帮助

最佳答案

简短回答 - 您需要在顶部 Controller 中调用$scope.$apply: http://plnkr.co/edit/QEjzlsJj4fh1eeqBXSvt?p=preview

长答案:您将常用的 js 函数绑定(bind)到常用的 js 事件,因此当用户单击元素时 - 您的函数就会执行。就这样。当您使用 ng-click 时 - 它将触发摘要周期并且您的绑定(bind)将被更新。所以需要手动触发,所以调用$scope.$apply

注意:不需要的地方最好不要使用 jquery。 IE。使用 $element.bind('click',function(){ 而不是 $().on...

关于javascript - 更新指令的范围并使用另一个指令进行观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33897045/

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