我是我工作的新开发者,并继承了这个代码作为我的第一个项目。此代码在应用程序中工作,但是当我尝试手动添加值时,它会中断,我不明白为什么。
模板代码是预先存在的部分,剩下的就是我试图实现它。
以下是代码:
<p>Rate: <strong data-bind="text: rate"></strong></p>
<div data-bind="template: { name: 'percentage-template', data: { data: rate, enable: secure }}"></div>
<script type="text/html" id="percentage-template">
<div class="input-group">
<input type="text"
class="form-control"
data-bind="vale: data,
precision: precision || 2,
isPercent: isPercent || true,
enable: enable || true"
/>
<span class="input-group-addon">%</span>
</div>
</script>
<script type="text/javascript">
function MyViewModel() {
this.rate = ko.observable(.01);
this.secure = ko.observable(false);
}
ko.applyBindings(new MyViewModel());
</script>
以下是在app中使用的视图部分:
<div data-bind="template: { name: 'percentage-template', data: {data: Form.Current.Rate, enable: ViewSecurity.Edit}}"></div>
问题在于,使用模板时,输入框仍为空,并且不显示速率。
编辑:我将模板中的自定义绑定更改为值,谢谢bryan 我也把值观察成了
答案 0 :(得分:0)
模板设置为绑定到&#39;数据&#39;并且在您的情况下,您通过&#39; rate&#39;进入那个约束,但是&#39;率&#39;不是设置为可观察的,因此它只能从模型中获取初始值,并且不会成为捕获更新的双向绑定。如果您希望在文本输入中输入更改以更新&#39; rate&#39;您的模型上的变量然后您需要使速率成为可观察的。
this.rate = ko.observable(.01);