سؤال

لدي هذا الكود مكتوب باستخدام 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