サービスによって提供される配列に由来するオブジェクトの属性 'show'を設定しようとしています。サービスから配列のオブジェクトにEmberが値を設定しました
サービス(ない問題):私のコントローラで
// services/events.js
export default Ember.Service.extend({
types: [
{"code": 0, "label": 'Performance', "show": true, "css": 'warning'},
{"code": 1, "label": 'Preview', "show": true, "css": 'danger'},
....
],
});
私は属性「ショー」を更新しなければならないアクションを持っている:
// controller
const { service } = Ember.inject;
export default Ember.Controller.extend({
eventsService: service('events'),
....
actions: {
setEventFilter: function(code) {
....
let obj = this.get('eventsService.types').objectAt(code);
// I get a proper Object here, that also has a set-function:
console.log(obj);
// this fails with 'Uncaught TypeError: obj.set is not a function':
obj.set('show', false);
}
}
});
私はここで答えを読んだEmber: set array value for specific keyすべての可能性を試したが、私の場合は何も働かなかった。
任意の提案:私は理解していない何
は、私は、コンソールで「設定」関数を参照することができ、まだ私はまだそのエラーを取得していること、ありますか?誰かが私が間違っていることを考えている?
私も試してみました:
console.log(obj.show); // working! gives me right value
console.log(obj.get('show'); // same error (but with get of course...)
obj.show = false; // gives error 'Assertion Failed: You must use Ember.set() to set the `show` property (of [object Object]) to `false`.'
すべての追加情報をありがとうございます! – Jeff