2014-02-06 36 views
2

,纔有可能趕上下:如果我有一些模板

<div ng-controller="SomeController"> 
    {{notthere}} 
</div> 

notthere沒有在控制器$scope定義,我可以有一個回調發射來處理呢?像:

$scope.$catch(function(name) { 
    // name === 'notthere' 
    return 'someval'; 
} 

BR, 丹尼爾

回答

1

好,你可以做

<div ng-controller="SomeController"> 
    {{notthere || 'someval'}} 
</div> 

,但我不知道這是否符合您的要求

0

我不這麼thnkg 。 Angular(默認情況下)將在編譯時添加nothere作爲屬性以鏈接(與控制器的作用域)。

你可能會在preLink的指令中做一些奇特的事情,但是沒有直接的方法來做到這一點。

順便說一句,nothere自動添加到範圍的事實可能是非常有益的。它可以很容易地聲明「僅查看」屬性(用於驗證等),您不需要關注控制器。

0

你可以嘗試這樣的事情

<div ng-controller="SomeController",ng-if="nothere!==undefined"> 
    {{nothere}} 
</div> 
<div ng-controller="SomeController",ng-if="nothere===undefined"> 
someValue 
</div>