假设我已经实现了如下指令:
bar
...其中 foo 指令的模板如下所示:
<span ng-bind="item.text"></span>
...而model.selectedItem
指令的模板看起来如下:
<bar />
当<bar />
因用户点击某些重复的 <bar />
而发生更改时,外部model.text
不知道任何所谓的属性更改。也就是说,外部foo
不会更新其绑定的bar
属性。
我无法弄清楚为什么{{1}}控制器上的模型更改不会更改外部{{1}}指令。
答案 0 :(得分:1)
selectedItem
位于foo
指令范围内。因此,它不会被外界看见(bar
指令)。
您可以保留另一个包含所选项目键的变量。
然后在bar
指令中,您可以按如下方式绑定值,
<bar item ="items[selectedKey].text"></bar>
编辑:你也可以尝试在范围而不是this
上设置值。
$scope.selectedItem = item;
而不是
this.selectedItem = item;