默认值从Observable对象变为未定义

时间:2016-06-16 20:04:15

标签: javascript nativescript

以下示例代码段的结构与我所拥有的视图模型和控制器类似。知道为什么在我实例化视图模型时,Observable对象中的默认值不会实例化吗? 如果在控制器中的另一个方法我尝试访问我得到未定义。

/**
 * 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()

1 个答案:

答案 0 :(得分:1)

假设正在加载Some-view文件的部分正在执行:

var someview = require('some-view.js');
someview.foo(); 

然后这应该在NativeScript中正常工作;我刚刚在运行时的v1.7.1和2.01中对此进行了测试,我的ViewModel.get(' someBool')返回true。