Javascript 如何调用jQuery';在Ember.js中的s hide()方法?
我试图使用jQuery方法Javascript 如何调用jQuery';在Ember.js中的s hide()方法?,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,我试图使用jQuery方法hide()隐藏一个对象,但它不起作用 我使用console.log()检查被调用函数中参数的值,所以我知道我做得不对。但是,我不知道如何让它工作 以下是我所拥有的: #------------------------Model------------------------ App.Monster = Ember.Object.extend({ name: "", hp: 0, isDead : false, isDeadChanged: function(t
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}}
#---------------------------模型------------------------
App.Monster=Ember.Object.extend({
姓名:“,
惠普:0,
伊斯戴德:错,
isDeadChanged:函数(目标、值){
怪物控制者杀戮(目标);
}.观察('isDead')
});
#------------------------控制器------------------------
App.monstersController=Ember.ArrayProxy.create({
内容:[],
createMonster:函数(名称,hp){
var monster=App.monster.create({name:name});
这个。推送对象(怪物);
},
kill:函数(目标){
//我希望使用Jquery隐藏方法隐藏所选对象!!
$('target').hide();
此.removeObject(目标);
},
#------------------------HTML文件------------------------
{{{#每个App.monsterscoontroller contentBinding=“App.monsterscoontroller.content”tagName=“ul”}
{{view Ember.Checkbox checkedBinding=“ishead”}
{{name}}
{{/每个}}
不要引用目标
kill: function(target){
//I Want the selected object to hide by using Jquery hide method!!
$(target).hide();
this.removeObject(target);
},
$(“目标”)
查找
元素。通常,将DOM脚本模式带到Ember是行不通的,因为Ember不是关于DOM操作的,而是关于使用对象描述应用程序。应用程序的DOM表示形式将自动更新以反映其底层数据对象的状态
视图跟踪其可见性(及其子视图的可见性)使用isVisible
属性,并将为您处理切换it的DOM表示。您应该尝试揭示给定视图上下文的可见性的语义对象含义。例如,如果您决定todo列表中的已完成项不应可见,则应执行以下操作:
{{#each item in controller}}
{{view App.TodoItemView isVisibileBinding="item.isComplete"}} <a {{action kill item}}>Done!</a>
{{/each}}
{{{#控制器中的每个项目}
{{view App.TodoItemView isVisibileBinding=“item.isComplete”}}完成!
{{/每个}}
谢谢你的评论!我删除了引号,但仍然不起作用。我应该尝试其他建议吗?什么类型的对象是target
?它需要是jQuery对象、DOM元素或$(target)
的选择器字符串才能起作用。Javascript控制台中有错误吗?console.log显示了这一点。c{hp:“100”,isDead:true,name:“MONSTER”}ember1355471385772:“ember502”\uu ember1355471385772\u meta:m\u super:undefined hp:“100”isDead:true jQuery1720822808830300346:对象名称:“MONSTER”__proto:object我在下面遇到了一个错误。未捕获类型错误:无法读取未定义的属性'defaultView',谢谢你的回答!我不知道Ember.View有isVisible属性。很高兴知道。但是,在这种情况下,如何使用Jquery.hide(mseconds)逐渐隐藏整个任务?像这样的转换将在1.0版本中实现淡入淡出效果,可以尝试使用classNameBindings
在设置isComplete
属性时添加css类。然后,您可以使用CSS3转换将其不透明度淡入淡入0。