لماذا لا يعمل هذا الرمز في AngularJS 1.2؟
-
20-12-2019 - |
سؤال
لدي هذا الكود مكتوب باستخدام 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}}"
إلى التوجيه الخاص بك ويعمل:
لا تنتمي إلى StackOverflow