我有这个代码,用 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);   
            }
        }
    }])
;

范围有一个 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/

有帮助吗?

解决方案

{{title}} 在你的里面 <span /> 被替换。添加 template: "{{title}}" 按照你的指令,它有效:

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top