我试图在#each模板中调用控制器函数来检查模型是否被选中。这需要为每个循环迭代接收模型。
jsbin在这里http://emberjs.jsbin.com/bemos/4/edit
我尝试使用以下模板,但是向{{controller.selected}}添加参数会导致ember抛出异常,或者没有做任何事情(结果在jsbin中似乎有所不同)。
{{#each model}}
<li><a hres="#" {{action "clickItem" this}}>{{label}} -- selected is {{controller.selected name}} </a></li>
{{/each}}
我在控制器中的功能如下
selected: function(id) {
var list = this.get("selectedList");
console.log("Checking sel for", id);
if(list.contains(id))
return true;
return false;
}.property("selectedList")
在jsbin中,我希望能够点击&#34; Hello 1&#34; /&#34; Hello 2&#34;元素,这应该改变文本的部分说&#34;选择是假&#34;为真。它还应该更新底部选择的项目数。目前,这显示选择了1个项目(因为默认是selectedList:[&#34; 2&#34;])然而&#34; Hello 2&#34;说&#34;选择是假的&#34; - 这应该说&#34; true&#34;。
(我应该加上我对EmberJS很新,因为他们已经使用ExtJS几年了!)。 感谢
答案 0 :(得分:1)
你的代码真的有问题吗?我想不,因为你的垃圾箱工作正常,甚至clickItem也正常工作。在您遇到此问题的本地环境中,我认为您没有使用相同版本的把手和余烬。请检查您是否在下面使用,
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v1.3.0.js"></script>
<script src="http://builds.emberjs.com/tags/v1.6.1/ember.js"></script>
更新1 -
以下是我尝试更新的垃圾箱 - http://emberjs.jsbin.com/veqoqocu/1/edit 它没有完全发挥作用,但修复了一些问题。
存在多个问题,