我试图从表单元素获取数据,然后使用 jQuery .after() 插入以显示可能的选择。我直接通过获取使用 AngularJS 加载的名为“data”的属性来从表单中获取可能的匹配项。现在的问题是,当我尝试 ng-repeat 插入新的内容时,它没有列出它。
'use strict';
angular
.module('autoComplete', [])
.directive('autoComplete', autoComplete);
function autoComplete($parse) {
var directive = {
restrict: 'EA',
require: '?ngModel',
link: link,
};
return directive;
function link(scope, elem, attr, ngModel) {
var modelGet = $parse(attr['ngModel']);
var modelSet = modelGet.assign;
scope.$watch(function() {
return modelGet(scope);
}, function() {
var string = modelGet(scope);
if (string != undefined && string.length > 6) {
var vm = this;
vm.data = attr.data;
vm.width = elem.outerWidth();
elem.after('<div><ul class="list-group" style="position: absolute; width: '+vm.width+'px;"><li class="list-group-item" ng-repeat="codes in vm.data track by $index">{{code}}</li></ul></div>');
console.log(vm.data); //This outputs the data just fine
}
});
}
}
一旦放入,屏幕上生成的唯一内容就是 {{code}}。我假设我应该尝试以某种 Angular 编译它?
最佳答案
您可以尝试在 elem.after(...
之后添加 $scope.apply()
来帮助消化 $scope 中所做的更改。观看()
。
关于javascript - AngularJS ng-重复父指令中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30222943/