【发布时间】:2016-03-24 05:53:31
【问题描述】:
如果给定字符串存在于数组中,我正在尝试进行计算,它应该返回 true。
我的模型上有一个属性是user_id 的数组,看起来像这样
"item_bid_history": [
562,
697,
13193
]
我可以获得当前登录的用户 ID,即13193
目前我有这样的东西
bidding: Ember.computed('item.item_bid_history','userService.user_id',function(){
return Ember.$.inArray(this.get('userService.user_id'),this.get('item.item_bid_history')) > -1;
})
也许我做错了,但即使我尝试 console.log inArray 的值我总是得到 -1 即使 user_id 在某些项目的 item_bid_history 数组中
是否有一个宏可以为我执行此操作,或者我只是没有正确创建计算?
【问题讨论】:
-
确保对数组使用
[],否则在数组中添加/删除值时计算属性不会再次触发:Ember.computed('item.item_bid_history.[]', ... -
你为什么使用 jQuery?
-
Ember 加载在其中,所以我想只使用它,我不应该吗?
-
Ember 的 Enumerable 类(以及通过继承,数组)有一些有用的方法,这些方法更适合用于 Ember 中的非 DOM 交互。在你的情况下,你会对
contains感兴趣,所以你可以说return this.get('item.item_bid_history').contains(this.get('userService.user_id'));emberjs.com/api/classes/Ember.Enumerable.html#method_contains
标签: arrays ember.js computed-properties