angularjs设置计算前显示的默认值

angularjs设置计算前显示的默认值,angularjs,Angularjs,我在现有站点上使用angularJs实现了非常简单的功能 是这样的 <div ng-app> <div ng-controller="TermsController"> <input type="checkbox" ng-model="terms.agree" /> <input type="submit" value="{{terms.label}}" .. /> </div> <

我在现有站点上使用angularJs实现了非常简单的功能

是这样的

<div ng-app>
    <div ng-controller="TermsController">
        <input type="checkbox" ng-model="terms.agree" />
        <input type="submit" value="{{terms.label}}" .. />
    </div>
</div>

我在页面中部插入角度,除了角度负载很慢,用户可以看到{{ Trime} } } } } } } } } } } { } } } } } > 我试着做一些类似的事情

<input type="submit" value="Default value" ng-model="terms.label" .. />

但它从未更新提交按钮的值。无论如何,我敢打赌我看到过类似的情况,但可能输入字段没有值属性,只有模型

任何关于如何在angularJs加载之前设置模板的指导都值得赞赏

我知道我可以设置一些预加载程序,并在angular加载后将其替换,但对于这个简单的任务来说,这似乎是一个过度的任务


感谢您的帮助

您可以在加载过程中使用
ng-clope
属性隐藏元素:

<div ng-app>
    <div ng-controller="TermsController" ng-cloak>
        <input type="checkbox" ng-model="terms.agree" />
        <input type="submit" value="{{terms.label}}" .. />
    </div>
</div>


参考资料:

对于现有版本的AngularJS,您能做的最好的事情就是给我们指令。根据其文件:

优先使用ngBind而不是{{ 表达式}}绑定是在需要将绑定放入 浏览器在原始状态下即时显示的模板 在Angular编译之前。由于ngBind是一个元素属性,因此 在加载页面时,使绑定对用户不可见

要使
ng bind
在您的案例中工作,您必须将
输入
标记更改为
按钮
标记,如下所示:

<div ng-controller="TermsController">
    <input type="checkbox" ng-model="terms.agree">
    <button type="submit" ng-bind="terms.label">Before</button>
</div>

之前
下面是一个正在工作的JSFIDLE:


您可以使用
ng-clope
(有关更多信息,请参阅),但是
ng-clope
将隐藏整个DOM元素(及其子元素),而我相信您已经要求使用一个“默认”值,当AngularJS启动时,该值将更改为绑定。

确定回答了我的问题,但这似乎是一个解决方法,而不是一个通用解决方案。我猜angularJs是为更具动态性的站点设计的,在这些站点中,可以在angular初始化完成时显示预加载和切换视图