angularjs指令范围'@'选项

时间:2015-04-19 12:50:17

标签: angularjs

当我使用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"]

那么,问题是什么?

1 个答案:

答案 0 :(得分:0)

@用于将字符串传递给指令。因此,您的数组将通过angular转换为JSON,并将JSON字符串传递给指令。

如果要传递对象或数组,请使用=