this. Get(“对象.值”)在ember.js中无法正常工作

hm2xizp9  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(129)

有时候.get(“object.value”)在ember.js中不能正常工作,但是.get(“object”).value可以正常工作,原因是什么?

this.get( "object.value") = undefined 
this.get("object").value = "values"
dtcbnfnu

dtcbnfnu1#

你能澄清"什么不起作用"吗?你期望发生什么?你的数据是什么样子的?
object.value是否意外地成为一个带点的键?例如:

{
  'object1.value': 1,
  // vs
  object2: {
    value: 2
  }
}

get与object1.value一起使用 * 将不起作用 *,因为没有名为object1的键,但object2.value将起作用,因为存在名为object2的键
因此,如果您希望访问键中包含.的属性,则需要一个自定义方法来执行此操作(可能使用方括号访问)。
例如:

import { get } from '@ember/object';

function customGet(obj, keyOrPropertyPath) {
  if (keyOrPropertyPath in obj) return obj[keyOrPropertyPath];

  return get(obj, keyOrPropertyPath);
}

相关问题