1
我們經常被告知確保正確分離關注點(How do I 「think in AngularJS」 if I have a jQuery background?),並且該視圖應該是正在進行的正式記錄。將角度傳遞函數中的顧慮分離爲指令
假設我們有一個動態的基於單獨函數的元素的src指令。我的印象是,我們應該使用隔離範圍和'&'將函數傳遞給指令。
但是,這是否算作不分離的問題,因爲現在視圖包含邏輯?還是沒關係,因爲myFunction()存儲在控制器中?
<img my-src callback='myFunction()' />
HTML
<body ng-app='testApp'>
<div ng-controller='TestCtrl'>
<img my-src callback='myFunction()' />
</div>
</body>
JS
angular.module('testApp', [])
.controller('TestCtrl', function($scope) {
$scope.myFunction = function() {
return 'http://nodejs.org/images/roadshow-promo.png';
}
})
.directive('mySrc', function() {
return {
restrict: 'A',
scope: {
callback: '&'
},
link: function (scope, elem, attrs) {
elem.attr('src', scope.callback());
}
};
})