我想将默认值设置为范围,由ng-bind选取。我这样做:
<button>Show <span data-ng-bind="data.text" data-ng-init="data.text = 'All';"></span> Names</button>
在此示例中,范围设置为innerHTML =&#39;全部&#39;当页面加载时。
但是,我希望有一种方法可以做到这一点而不需要使用ng-init,可能是这样的:
<button>Show <span data-ng-bind="data.text = 'All';"></span> Names</button>
答案 0 :(得分:17)
在您的控制器中:
$scope.data = {};
$scope.data.text = "All";
您的加价:
<button>Show <span data-ng-bind="data.text"></span> Names</button>
或者,如果你想跳过控制器代码(由Kohjah Breese'评论提供):
<button>Show <span data-ng-bind="data.text || 'All'"></span> Names</button>
据推测,控制器中的其他地方会有一些代码会切换此值,但为了初始化,应该这样做。
编辑:或者,正如tymeJV在评论中指出的那样(添加了ng-cloak,因此{{}}语法不会向用户显示):
<button>Show <span ng-cloak>{{data.text || "All"}}</span> Names</button>
答案 1 :(得分:4)
||
运算符也适用于ngBind
,就像在纯JavaScript中一样:
<span ng-bind="myVariable || 'My default value'"></span>
如果变量已填充,则输出myVariable
,否则使用替代'My default value'
。
答案 2 :(得分:2)
ngInit的唯一合适用途是用于别名ngRepeat的特殊属性[...]除了这种情况,你应该使用控制器而不是ngInit来初始化作用域上的值。
所以我想在控制器中初始化data.text对于angularjs来说是好的