2014-03-07 43 views
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()); 
     } 
    }; 
}) 

回答