【发布时间】:2015-09-09 20:27:53
【问题描述】:
我试图弄清楚为什么我无法覆盖通过隔离范围 (@) 传递给 angularJS 指令的值。我尝试用以下内容覆盖vm.index 的值:
vm.index = parseInt(vm.index, 10)
但是,由于某种原因,它不起作用。
如果我将其更改为:
vm.newIndex = parseInt(vm.index, 10)
它有效。此外,在 $scope 上分配值也可以。
为什么第一种方法不起作用?
我创建了这个example plunker 以供参考。
【问题讨论】:
-
你说它“不起作用”到底是什么意思?
-
对不起,我的意思不是
vm.index不会从字符串转换为数字,这会在执行{{ vm.index + 1 }}之类的操作时导致字符串连接。 -
@brso05,我知道。但是,范围不是问题,因为您可以通过将
vm.index = ...更改为vm.newIndex = ...并更新模板以使用vm.newIndex + 1来验证自己。 -
@RaphaelRafatpanah 你能看看我更新的答案吗..这会让你更清楚为什么
vm.index不能通过直接从控制器直接parseInt工作 -
插件链接已失效。
标签: javascript angularjs angularjs-directive angularjs-scope angularjs-controlleras