我试图使用jQuery方法hide()
隐藏对象,但它不起作用。
我使用console.log()来检查被调用函数中参数的值,所以我知道我做得不对。但是,我不知道如何让它发挥作用......
这就是我所拥有的:
#------------------------Model------------------------
App.Monster = Ember.Object.extend({
name: "",
hp: 0,
isDead : false,
isDeadChanged: function(target, value){
App.monstersController.kill(target);
}.observes('isDead')
});
#------------------------Controller------------------------
App.monstersController = Ember.ArrayProxy.create({
content:[],
createMonster: function(name,hp){
var monster = App.Monster.create({name:name});
this.pushObject(monster);
},
kill: function(target){
//I Want the selected object to hide by using Jquery hide method!!
$('target').hide();
this.removeObject(target);
},
#------------------------HTML FILE------------------------
{{#each App.monstersController contentBinding="App.monstersController.content" tagName="ul"}}
<li>
{{view Ember.Checkbox checkedBinding="isDead"}}
<label for="" {{bindAttr class="isDead"}}>{{name}}</label>
</li>
{{/each}}
答案 0 :(得分:4)
通常将您的DOM脚本模式带到Ember是行不通的,因为Ember不是关于DOM操作,而是关于使用对象描述您的应用程序。应用程序的DOM表示将自动更新以反映其基础数据对象的状态。
Ember.View使用isVisible
属性跟踪其可见性(及其子视图的可见性),并将为您处理切换它的DOM表示。您应该尝试揭示给定视图上下文的可见性的语义对象含义。例如,如果您确定todo列表中的已完成项目不可见,您可以执行以下操作:
{{#each item in controller}}
{{view App.TodoItemView isVisibileBinding="item.isComplete"}} <a {{action kill item}}>Done!</a>
{{/each}}
答案 1 :(得分:-1)
不要引用target
。
kill: function(target){
//I Want the selected object to hide by using Jquery hide method!!
$(target).hide();
this.removeObject(target);
},
$('target')
查找<target>
元素。