Javascript 聚合物结合性能为';t更新
我正在为聚合物写一个简单的i18n元素。其想法是下载翻译,然后将其缓存在本地存储中。我对下面的代码有问题,几乎一字不差地取自Javascript 聚合物结合性能为';t更新,javascript,polymer,Javascript,Polymer,我正在为聚合物写一个简单的i18n元素。其想法是下载翻译,然后将其缓存在本地存储中。我对下面的代码有问题,几乎一字不差地取自 app localstorage日志输出: Got stored value! undefined Object { } 在我看来,translation在某种程度上保留了它的默认值,尽管它已绑定,但应该根据文档进行更新。有人能告诉我我做错了什么吗?您显示的代码看起来是正确的(除了省略的iron ajaxURL和服务器的设置)。() 几点注意: translatio
app localstorage
日志输出:
Got stored value! undefined Object { }
在我看来,
translation
在某种程度上保留了它的默认值,尽管它已绑定,但应该根据文档进行更新。有人能告诉我我做错了什么吗?您显示的代码看起来是正确的(除了省略的iron ajax
URL和服务器的设置)。()
几点注意:
translation
的默认值应该是返回空对象的函数。将其直接设置为对象将导致在元素的所有实例中共享该对象,这可能不是您想要的
handleas=“json”
是多余的,因为这是默认设置
我怀疑app localstorage
的日志表明您得到的是一个空对象,因为您的模拟服务器的设置可能不正确。您显示的代码看起来正确(除了省略的iron ajax
URL和服务器的设置)。()
几点注意:
translation
的默认值应该是返回空对象的函数。将其直接设置为对象将导致在元素的所有实例中共享该对象,这可能不是您想要的
handleas=“json”
是多余的,因为这是默认设置
我怀疑app localstorage
的日志表明您得到了一个空对象,因为您的模拟服务器可能设置不正确。我也这么认为,但expect(request.response['Hello world!'].to.be.equal('world,Hello!')代码>不会失败。但是,我注意到,element.$.ajax.lastResponse
保持未定义状态。这是错误的吗?我应该调查什么来找出原因?好的,我发现这是iron ajax请求和响应的一种特殊行为。。。在我的测试结束时,element.$.ajax.loading
是true
,所以response仍然没有到达元素,lastResponse
是未定义的,translation
没有绑定。很抱歉打扰您,谢谢您的意见!我也这么认为,但是expect(request.response['helloworld!']).to.be.equal('world,Hello!'))代码>不会失败。但是,我注意到,element.$.ajax.lastResponse
保持未定义状态。这是错误的吗?我应该调查什么来找出原因?好的,我发现这是iron ajax请求和响应的一种特殊行为。。。在我的测试结束时,element.$.ajax.loading
是true
,所以response仍然没有到达元素,lastResponse
是未定义的,translation
没有绑定。很抱歉打扰您,谢谢您的意见!
test('retrieving translated string', function() {
var element = fixture('ajax');
request = element.$.ajax.generateRequest();
server.respond();
expect(request.response).to.be.ok;
expect(request.response).to.be.an('object');
expect(request.response['Hello world!']).to.be.equal('World, hello!');
});
Got stored value! undefined Object { }