2013-05-27 56 views
0

我的根控制器位於我的AngularJS Web應用程序和過濾器中。過濾器如果我在html模板中應用它,但它不起作用,如果我試圖在控制器中應用過濾器。AngularJS在控制器中應用過濾器

function Controller (... deps ...) { 
    filter = $filter('my_filter'); 
    $scope.$apply(function(){$scope.error_message = filter('ERROR');}); 
} 

filter必須返回簡單error字符串到<p>,這是行不通的。

,如果我做:

<p>{{'....' | my_filter}}</p> 

它的工作原理。爲什麼?

謝謝。

回答

1

請勿將$scope.error_message = filter('ERROR');包含在$scope.$apply中 - 這將導致錯誤,因爲Controller在摘要循環中被調用。

這應該工作:

function Controller ($filter ... other deps ...) { 
    var filter = $filter('my_filter'); 
    $scope.error_message = filter('ERROR'); 
} 
+0

如果我想要做一個指令,同樣的事情? http://stackoverflow.com/questions/17202242/assign-the-filter-value-to-a-variable-within-a-directive – marceloduende