为什么此代码在AngularJS 1.2中不起作用?

时间:2014-04-11 04:37:46

标签: javascript angularjs angularjs-directive

我有这个代码,用Angular 1.2编写:http://jsfiddle.net/VmkQy/1/

<div ng-app="app">
    Title is: <span my-directive data-title="Test title">{{ title }}</span>
</div>

angular.module('app', [])
    .directive('myDirective', [function() {
        return {
            restrict: 'A',
            scope: {title:'@'},
            link: function($scope) {
                alert($scope.title);   
            }
        }
    }])
;

Scope具有title属性,但不会呈现。为什么呢?

如果我将指令配置更改为scope:true,它将正常工作:http://jsfiddle.net/VmkQy/2/

angular.module('app', [])
    .directive('myDirective', [function() {
        return {
            restrict: 'A',
            scope: true,
            link: function($scope, $element, attrs) {
                $scope.title = attrs.title;
                alert($scope.title);   
            }
        }
    }])
;

这是Angular 1.2中的错误或功能?旧版本适用于所有这些情况:http://jsfiddle.net/VmkQy/3/

1 个答案:

答案 0 :(得分:2)

{{title}}内的<span />被替换。将template: "{{title}}"添加到您的指令中它可以正常工作:

http://jsfiddle.net/VmkQy/5/