在 Appcelerator Titanium 中,我正在创建一个标签,该标签最初设置为一些文本。然后我添加一个按钮,单击该按钮会调用 scanController 模块,并且该模块需要更改该文本。因此,在 scanController 中,我正在调用setResultTxt()
您在下面看到的 scanView 模块中的方法。但是什么时候这样做它说那myResultTxt
是空的!这是为什么?
我仍在使用 Titanium SDK 1.7.5,因为升级到较新版本时遇到问题。
这是该问题的完整工作示例:
应用程序.js
var win = Titanium.UI.createWindow({
backgroundColor:'#fff',
layout:"vertical"
});
win.open();
var module = require('scanView');
module.createScanPage(win);
扫描视图.js
var myResultTxt, theButton;
exports.createScanPage = function(theWindow) {
myResultTxt = Ti.UI.createLabel({
text: 'Some initial text',
top:40,
});
theWindow.add(myResultTxt);
theButton = Ti.UI.createButton({
title: 'Do something',
top:20
});
theButton.addEventListener('click', function() {
alert('clicked');
var b = require('scanController');
b.startScanning();
});
theWindow.add(theButton);
};
exports.setResultText = function(str) {
myResultTxt.text = str;
};
扫描控制器.js
exports.startScanning = function() {
var a = require('scanView');
a.setResultText('My new text');
};