下面的示例代码片段的结构与我拥有的 View 模型和 Controller 类似。知道为什么当我实例化 View 模型时 Observable 对象中的默认值不会实例化吗? 如果在 Controller 中的另一个方法中我尝试访问,我会得到未定义的结果。
/**
* some-view-model.js
*/
var Observable = require('data/observable').Observable;
function SomeViewModel(){
var model = new Observable({
name: "",
someBool: true
});
return model;
}
module.exports = SomeViewModel;
/**
* some-view.js
*/
var SomeViewModel = require('some-view-model');
var SomeView = function(){};
var ViewModel = new SomeViewModel();
SomeView.prototype.viewLoaded = function(args){
// do some stuff
};
SomeView.prototype.foo = function(){
// below returns undefined rather than true, why??
ViewModel.get('someBool')
};
module.exports = new SomeView()
最佳答案
假设加载 Some-view 文件的部分正在执行:
var someview = require('some-view.js');
someview.foo();
那么这在 NativeScript 中应该可以正常工作;我刚刚在 v1.7.1 和 2.01 运行时中对此进行了测试,我的 ViewModel.get('someBool') 返回 true。
关于javascript - Observable 对象中的默认值未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37868444/