gpt4 book ai didi

javascript - 钛合金,需要 Controller

转载 作者:行者123 更新时间:2023-11-29 14:57:22 28 4
gpt4 key购买 nike

我有一个使用 Alloy 框架在 Titanium SDK 3.02 中构建的项目。它是一个选项卡式应用程序,我想通过 tab1 中的按钮更改 tab2 的 View

tab1.xml

...
<Button id="button" onClick="setup">
...

tab1.js

function setup(){
//this doesn't work
var view = Alloy.createController('tab2');
view.changeBackground('blue');
$.tabGroup.setActiveTab(1);
}

tab2.xml

...
<View id="view" backgroundColor="red">
...

tab2.js

...
exports.changeBackground = function(color){
$.view.backgroundColor = color;
//this runs eg
Ti.API.info('function running');
}

我明白为什么这行不通。我正在创建一个从未添加到 View 中的 Controller 的新实例。但我想访问现有的 Controller 。我试过了

var view = require('tab2');
view.changeBackground('blue');

但这给了我一个“找不到模块错误”。我希望这是有道理的

谢谢

最佳答案

解决了

将 tab2 中的函数设置为 Alloy.Global 就可以了。

tab1.xml

...
<Button id="button" onClick="setup">
...

tab1.js

function setup(){
var changeBackgroundColor = Alloy.Globals.changeBackgroundColor;
changeBackgroundColor('blue');
$.tabGroup.setActiveTab(1);
}

tab2.xml

...
var changeBackground = function(color){
$.view.backgroundColor = color;
}
Alloy.Global.changeBackGroundColor = changeBackground;
...

关于javascript - 钛合金,需要 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15624837/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com