请参阅此插件:http://plnkr.co/edit/pB8Pa5rz3XnIhsqP8rQL?p=preview
var str = $scope.myOptions.split(' ');
var itemStr = str[0];
var collectionName = str[2];
$scope.$watch(collectionName,function(collection){
console.log(collection);
for(var i=0;i<collection.length;i++){
$scope.item.push(collection[i]);
}
});
我看到collectionName已正确填充并且调用了watch函数。但是为什么它不解析这个集合呢?它是未定义的而不是集合数组。
答案 0 :(得分:0)
您的指令具有隔离范围,因此它无法访问控制器上的states
变量。你必须将它传递给指令才能看到它。
检查此插件:
答案 1 :(得分:0)
解决方案是使用链接功能。我试图使用以下方法读取数组:
scope: {myOptions: '@'}
@只获取字符串,指令无法将其解析为模型。
使用链接功能,您可以观看模型并对其执行操作