我使用不同的ngModels在基本元素之后添加一些元素,对一个输入的任何更改都会影响所有输入(ng-models是不同的)!!!
我该如何解决呢。
实际上我创建一个html字符串并编译它然后使用.after来添加元素。
但是当我添加2个或更多元素时,任何更改都会影响所有元素。
控制器:
function makeElement() {
var idName = "level" + vm.currentLevel + "";
var idCss = "#" + idName + "";
if (angular.element(idCss).length) {
angular.element(idCss).remove();
}
setTimeout('', 1000);
console.log("getChildren", vm);
var htmlStr = angular.element(
'<div id="'+ idName +'" class="row"> ' +
'<div class="col-xs-8"> ' +
'<label class="vertical">{{vm.dataLevel[vm.currentLevel].Title}}</label> ' +
'<input type="text" id="level-' + vm.currentLevel + '-code" class="k-textbox quarter-width ltr" value="{{vm.dataLevel[vm.currentLevel].item.Code}}" disabled /> ' +
'<select id="data-level-' + vm.currentLevel + '" class="three-quarter-width" ng-hide="vm.isBusy" ' +
'kendo-drop-down-list ' +
'k-options="vm.dataLevel[vm.currentLevel]" ' +
'k-rebind ="vm.dataLevel[vm.currentLevel]"></select> ' +
'<span ng-show="vm.isBusy"><i class="fa fa-spinner fa-spin"></i></span> ' +
'</div> ' +
'<div class="col-xs-4 align-left" ng-show="!vm.isBusy"> ' +
'<label class="vertical transparent">1</label> ' +
'<a kendo-button ng-click="vm.openActionDialog(1,0)"> ' +
'<i class="fa fa-plus fa-fw"></i> ' +
'</a> ' +
'<a kendo-button data-ng-disabled="!vm.dataLevel[vm.currentLevel].item.Code" ng-click="vm.openActionDialog(2,0,vm.currentLevel0Item)"> ' +
'<i class=" fa fa-edit fa-fw"></i> ' +
'</a> ' +
'<a kendo-button data-ng-disabled="!vm.dataLevel[vm.currentLevel].item.Code" ng-click="vm.openActionDialog(3,0,vm.currentLevel0Item)"> ' +
'<i class="fa fa-trash-o fa-fw"></i> ' +
'</a> ' +
'<a kendo-button ng-click="vm.getData(0,0,true)"> ' +
'<i class="fa fa-refresh fa-fw"></i> ' +
'</a> ' +
'</div> ' +
'</div> <br />');
return $compile(htmlStr)($scope);
}
答案 0 :(得分:0)
我发现问题是我的错误是将数据索引用作字符串。我之前写过:
'k-options="vm.dataLevel[vm.currentLevel]" '
但现在我的代码是:
'k-options="vm.dataLevel[' + vm.currentLevel + ']" '