Angular transcluded指令仅在第一次绑定

时间:2014-06-17 13:04:57

标签: angularjs transclusion angular-directive

我正在开发一个简单的就地编辑指令。我的目标是使用指令内容(表单)作为模板,并将输入字段更改为标签。单击表单时,指令应将其替换为原始编辑器内容。

我创造了一个插件。检查HERE

它第一次绑定了它的数据,但没有进一步绑定它们。

我的问题:我的概念出了什么问题?如何修复以达到预期的行为?

任何帮助或评论都是有意义的。我很困在这里。感谢。

1 个答案:

答案 0 :(得分:3)

您应该在指令中使用ng-click而不是直接使用onclick事件处理程序,因为所有更改都保留在角度事件循环中,所以

   template: '<div class="readonly-item" ng-transclude ng-click="switchForm()"></div>',

并删除你的onclick enevet处理程序分配

你得到了这个

http://plnkr.co/edit/C7xpmOxEOpwuAMB1mNpI?p=preview

只需添加

即可获得相同的结果
  scope.$apply() 

在你的切换功能结束时,我不喜欢这个,因为你强迫角度知道操作而不是真的有必要。但我也是这样做的