我试图让多个视图访问相同的变量。我想简单的解决方案是让控制器存储视图的变量。但是无论如何要在ember中声明静态变量?Ember静态变量
1
A
回答
1
解决方案是重新打开类,并像这样添加静态变量。 What is the ember.js idiomatic way to create static variables in model?
0
你也可以定义一个视图并在其中设置静态变量,其他视图扩展这个视图。
1
有两种方法可以将变量定义为像Ember对象中的静态变量。一种方法是在reopenClass函数中,另一种方法是在Ember.Object的扩展函数中定义类时定义变量。 下面的示例显示了这两种方式。
App.Person = Ember.Object.extend({
data2: "Boban", // static variable
setData: function(value){
App.Person.data=value;
},
getData: function(){ return App.Person.data;},
setData2: function(value){
App.Person.prototype.data2=value;
},
getData2: function(){return App.Person.prototype.data2;}
}).reopenClass({
data: 123 // static variable
});
per1= App.Person.create();
per2=App.Person.create();
console.log("show 1 th...");
console.log("data per1 : " + per1.getData()); //data per1 : 123
console.log("data per2 : " + per2.getData()); //data per2 : 123
console.log();
per1.setData("data is set in per 1");
console.log("show 2 th...");
console.log("data per1 : " + per1.getData()); //data per1 : data is set in per 1
console.log("data per2 : " + per2.getData()); //data per2 : data is set in per 1
console.log();
per2.setData("data is set in per2");
console.log("show 3 th...");
console.log("data per1 : " + per1.getData()); //data per1 : data is set in per2
console.log("data per2 : " + per2.getData()); //data per2 : data is set in per2
console.log();
console.log("show 11 th...");
console.log("data2 per1 : " + per1.getData2()); //Boban
console.log("data2 per2 : " + per2.getData2()); //Boban
console.log();
per1.setData2("data2 is set in per 1");
console.log("show 12 th...");
console.log("data2 per1 : " + per1.getData2()); //data2 per1 : data2 is set in per 1
console.log("data2 per2 : " + per2.getData2()); //data2 per2 : data2 is set in per 1
console.log();
per2.setData2("data2 is set in per2");
console.log("show 13 th...");
console.log("data2 per1 : " + per1.getData2()); //data2 per1 : data2 is set in per2
console.log("data2 per2 : " + per2.getData2());//data2 per1 : data2 is set in per2
console.log();
// end at last
per1.setData("D1");
per2.setData2("D2");
per1.set("data","df1");
per2.set("data","df2");
per1.set("data2","d2f1");
per2.set("data2","d2f2");
console.log("last ....")
console.log("per1 : " + per1.getData() + " " + per1.get("data") + " " + per1.getData2() + " " + per1.get("data2"));
console.log("per2 : " + per2.getData() + " " + per2.get("data") + " " + per2.getData2() + " " + per2.get("data2"));
//per1 : D1 df1 D2 d2f1
//per2 : D1 df2 D2 d2f2
如可以看出,变量数据和DATA2行为类似于静态变量。如果您尝试使用功能集.set('data','df')设置具有相同名称的变量,该变量是该实例的新变量,与具有相同定义的静态变量不同。
相关问题
- 1. 静态变量
- 2. 静态变量
- 3. 静态变量
- 4. 静态变量
- 5. 静态变量
- 6. 静态变量
- 7. 静态变量
- 8. 静态变量
- 9. 静态类中的静态变量和非静态类中的静态变量
- 10. 静态变量ASP.NET
- 11. Python ...静态变量?
- 12. C++静态变量
- 13. 静态变量值
- 14. PHP静态变量
- 15. C++静态变量
- 16. JavaScript - 静态变量?
- 17. C++ - 静态变量
- 18. @SuppressWarnings - 静态变量
- 19. PHP静态变量
- 20. C++静态变量动态
- 21. 静态变量与静态属性
- 22. 静态与非静态变量C++
- 23. 非静态/静态变量错误
- 24. 静态函数和非静态变量
- 25. 静态函数中的静态变量?
- 26. PropertyChangedEventHandler静态变量不变
- 27. 静态变量和静态变量的区别是什么?
- 28. 在C99中使用静态变量初始化静态变量
- 29. 将静态变量分配给非静态变量
- 30. php初始化静态变量与其他静态变量