我有一个数组(['Name1','Name2','Name3']
),我在页面Load填充。
现在按下按钮,我想为该数组分配一些其他值,并填充相同的
App.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-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>
目前的情况是
我正在寻找按钮点击时的输出
答案 0 :(得分:3)
使用Ember.set
方法进行更改以在模板中反映更改。所以只需用下面的
App.myArray = ['Name4', 'Name5', 'Name6']
Ember.set(App,'myArray',['Name4', 'Name5', 'Name6']);
我会说不要使用全局变量来做这种事情。你可以在IndexRoute中引入它。(我猜你是为测试目的而做的。)
答案 1 :(得分:1)
App
是一个Ember对象,myArray
是我们无法使用assignment
运算符直接设置Ember对象属性值的属性之一。
我们必须使用setter
函数。
你可以使用Ember.set
1。Ember.set(App,'myArray',['Name4', 'Name5', 'Name6']);
或者您也可以使用set
对象提供的App
方法来设置其属性。
App.set('myArray',['Name4', 'Name5', 'Name6']);