当我使用angularjs的指令时遇到了一个问题。 这是问题所在:
directives.js:
var directives = angular.module('directives', []);
directives.directive('list', ['$templateCache', function() {
restrict: 'E',
scope: [
names: '@'
],
template: '<div>'+
'<div ng-repeat="name in names">{{name}}</div>'+
'{{names}}'+
'</div>',
replcae: true
}]);
example.html的:
......
<div ng-controller="nameCtrl">
<list names="{{names}}"></list>
</div>
......
controllers.js
var controllers = angular.module('controllers', []);
controller.controller('nameCtrl', ['$scope', function($scope) {
$scope.names = ['foo', 'bar'];
}]);
但是当我打开example.html时,它只打印出来:
["foo","bar"]
不是我想要的:
foo
bar
["foo","bar"]
那么,问题是什么?
答案 0 :(得分:0)
@
用于将字符串传递给指令。因此,您的数组将通过angular转换为JSON,并将JSON字符串传递给指令。
如果要传递对象或数组,请使用=
。