在EmberJS中重新绑定时,数组值没有得到反映 [英] Array values are not getting reflected while rebinding in EmberJS
问题描述
我有一个数组( ['Name1','Name2','Name3']
),我正在加载页面。
现在按钮点击,我想为该数组分配一些其他值,并像
应用程序一样填充。 myArray = ['Name4','Name5','Name6']
但是没有反映出来。
完成代码
<!DOCTYPE html>
< html>
< head>
< script src =https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.1/handlebars.min.js>< / script>
< script src =https://code.jquery.com/jquery-2.1.3.min.js>< / script>
< script src =https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.10.0/ember.min.js>< / script>
< script src =http://builds.emberjs.com/tags/v1.10.0-beta.3/ember-template-compiler.js>< / script>
< script src =http://builds.emberjs.com/release/ember.debug.js>< / script>
< script src =http://builds.emberjs.com/beta/ember-data.js>< / script>
< / head>
< body>
< script type =text / x-handlebars>
{{outlet}}
< / script>
< script type =text / x-handlebarsdata-template-name =index>
< button {{actionClickFn}}>点击此处< / button>
< ul>
{{AppeleArray中的#each值}}
< li> {{value}}< / li>
{{/ each}}
< / ul>
< / script>
< script type =text / javascript>
var App = Ember.Application.create()
App.myArray = ['Name1','Name2','Name3']
App.IndexRoute = Ember.Route.extend({
actions:{
ClickFn:function(){
App.myArray = ['Name4' 'Name5','Name6']
console.log(App.myArray);
}
}
});
< / script>
< / body>
< / html>
目前的情况是
使用 Ember.set
方法进行更改以在模板中反映。所以只需将
App.myArray = ['Name4','Name5','Name6']
替换为
<$ Ember.set(App,'myArray',['Name4','Name5','Name6']);
我不会对这种东西使用全局变量。您可以在IndexRoute本身介绍它(我想你正在做它的测试目的)。
I have an array (['Name1','Name2','Name3']
) which I am populating at page Load.
Now at button click, I want to assign some other values to that array and populate the same like
App.myArray = ['Name4','Name5','Name6']
But it is not reflected.
Complete code
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.1/handlebars.min.js"></script>
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.10.0/ember.min.js"></script>
<script src="http://builds.emberjs.com/tags/v1.10.0-beta.3/ember-template-compiler.js"></script>
<script src="http://builds.emberjs.com/release/ember.debug.js"></script>
<script src="http://builds.emberjs.com/beta/ember-data.js"></script>
</head>
<body>
<script type="text/x-handlebars">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="index">
<button {{action "ClickFn"}}>Click Here</button>
<ul>
{{#each value in App.myArray}}
<li>{{value}}</li>
{{/each}}
</ul>
</script>
<script type="text/javascript">
var App = Ember.Application.create()
App.myArray = ['Name1','Name2','Name3']
App.IndexRoute = Ember.Route.extend({
actions: {
ClickFn: function() {
App.myArray = ['Name4','Name5','Name6']
console.log(App.myArray) ;
}
}
});
</script>
</body>
</html>
The current situation is
I am looking for the output should be when button click
Use Ember.set
method for changes to reflect it in template. so just replace App.myArray = ['Name4', 'Name5', 'Name6']
with the below
Ember.set(App,'myArray',['Name4', 'Name5', 'Name6']);
I would say dont use global variable for this kind of stuff. you can introduce it in IndexRoute itself.(i guess you are doing it for testing purpose).
这篇关于在EmberJS中重新绑定时,数组值没有得到反映的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!