【发布时间】:2017-09-06 22:17:45
【问题描述】:
我创建了一个简单的组件:
(function (module) {
'use strict';
function SomeCtrl() {
this.foo = function (event) {
this.someArray.forEach(function (part, index, array) {
//somelogic
array[index] = array[index] + " (foo)";
});
}
}
module.component('componentName', {
templateUrl: 'blah.html',
controller: SomeCtrl,
bindings: {
someArray: '=',
}
});
})(module);
HTML模板也很简单:
<div class="input-group">
<input type="text" class="form-control" ng-model="$ctrl.someArray" />
<span class="input-group-btn">
<a class="btn btn-default" ng-click="$ctrl.foo($event)">
<span class="glyphicon glyphicon-ok" aria-hidden="true"></span>
</a>
</span>
</div>
{{$ctrl.someArray}}
基本上它是一些输入和按钮。输入与数组绑定,并在按钮单击时修改数组。
不幸的是,组件的行为很奇怪。表达式 ({{$ctrl.someArray}}) 已更新,但输入值保持不变。
另一方面,当用户修改输入值时,表达式会正确改变。
没有抛出任何错误,什么也没有。它甚至不是单向绑定,而是不寻常的数据流块......
【问题讨论】:
-
你能创建一个 plunker/fiddle 吗?
标签: javascript angularjs data-binding binding