我正在 JsViews 站点中查看按钮的以下示例 http://www.jsviews.com/#link-button 。当我修改代码以获取输入并在单击按钮时在警报框中显示相同的内容时,辅助函数将在加载时执行。此外,该函数不是在单击按钮时执行,而是在输入值更改时执行。我猜测,由于模型值在 View 中发生了更改,因此会使用更新后的模型值调用该函数,但为什么它在单击按钮时不起作用。我对 jsviews 很陌生,无法理解发生了什么。谁能告诉我我的方法有什么问题。以下是更新后的代码。
<div id="topLinked">
<input type="text" data-link="test"/>
<button data-link="{on ~doSomething(test)}">Do something</button>
<input type="button" data-link="{on ~doSomething(test)}" value="Do something" />
</div>
var person = {};
var helpers = {
doSomething: function(val) {
alert(val);
}
}
$.link(true, "#topLinked", person, helpers); // Data-link top-level content
最佳答案
您犯了一个错误:data-link="{on ~doSomething(test)}"
。
参数通过一个或多个空格传递,如下所示:data-link="{on ~doSomething test test2 ...}"
。
我更改了example像这样:
html
<div id="result"></div>
<script id="tmpl" type="text/x-jsrender">
<input type="text" data-link="test" value="Do something" />
{^{on ~doSomething test}}Do something{{/on}}
<button data-link="{on ~doSomething test}">Do something</button>
<input type="button" data-link="{on ~doSomething test}" value="Do something" />
</script>
js
var person = {
test : "start value"
};
var helpers = {
doSomething : function (val) {
alert(val);
return false;
}
}
var tmpl = $.templates("#tmpl");
tmpl.link("#result", person, helpers);
jsfiddle 上的示例
关于javascript - jsviews 中的辅助函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39364137/