是否可以捕获以下内容:如果我有一些模板
<div ng-controller="SomeController">
{{notthere}}
</div>
并且notthere
未在控制器$scope
中定义,我是否可以触发回调来处理此问题?像:
$scope.$catch(function(name) {
// name === 'notthere'
return 'someval';
}
BR, 丹尼尔
答案 0 :(得分:1)
嗯,你可以做到
<div ng-controller="SomeController">
{{notthere || 'someval'}}
</div>
但我不确定这是否符合您的要求
答案 1 :(得分:0)
我不这么说。 Angular(默认情况下)将在编译时添加nothere
作为链接(与控制器的作用域)链接的属性。
您可能会在指令中使用preLink
做一些奇特的事情,但没有直接的方法可以做到这一点。
nothere
自动添加到范围的事实可能非常有益。它可以很容易地声明您不需要关注控制器的“仅查看”属性(用于验证等)。
答案 2 :(得分:0)
您可以尝试这样的事情
<div ng-controller="SomeController",ng-if="nothere!==undefined">
{{nothere}}
</div>
<div ng-controller="SomeController",ng-if="nothere===undefined">
someValue
</div>