自定义计算函数煎茶触摸
custom calculation function Sencha Touch
我在Sencha Touch 2.4中工作,我想在特定视图卡上执行计算。但是,是否可以在视图外部(可能在模型或控制器中)定义计算函数,以便在加载视图时,它只是调用该函数。
我目前正在onActivate
事件中调用 myCalc 函数,结果当前在控制台上按console.log()
显示。
我的第一个问题是,是否可以在视图之外定义我的计算函数(计算中使用了几种方法),以便优化性能并在视图中调用带有参数的方法参数以通过参数方法进行计算?
function myCalc(method) {}
我的第二个问题是,如何在视图中显示我的计算结果,我设置了一个名为 myID
的 id 如何借助 id 显示结果?
我的代码:
xtype: 'mycard',
config: {
listeners: {
activate: 'onActivate'
},
id: 'myID',
styleHtmlContent: true
],
}
onActivate: function(me, container) {
var results = new myCalc('METHOD1');
console.log(results);
function myCalc(method) {...}
}
编辑1:我在计算中使用 GPS 坐标。我想将它们或结果设置为我的屏幕。如何setHtml
或获取locationupdate
外的坐标?
onActivate: function(me, container) {
var geo = Ext.create('Ext.util.Geolocation', {
autoUpdate: false,
listeners: {
locationupdate: function(geo) {
var currentLat = geo.getLatitude();
var currentLng = geo.getLongitude();
var PT = new Ext.util.Calc.myCal('METHOD1');
var c = PT.setC([currentLat, currentLng]);
//this.setHtml(c); // not working
console.log(c);
}
}
});
geo.updateLocation();
}
您可以使用 Ext.define 在它自己的类中定义您的函数,然后在整个应用程序中使用它,如下所示:
Ext.define("Calculator", {
addition: function(num1, num2) {
return num1 + num2;
},
subtract: function(num1, num2) {
return num1 - num2;
}
...
});
您可以在其自己的文件中创建它,例如 App.util.Calculator
.您也可以将其用作mixin(此处为指南),以便您可以将此功能添加到任何其他类中。
要更新卡片的结果,请使用如下内容:
items: [{
title: 'Home',
iconCls: 'home',
html: 'Home Screen',
listeners: {
activate: function() {
var calc = new Calculator();
this.setHtml('2 + 3 = ' + calc.addition(2,3));
}
}
}]
编辑:这超出了您发布的代码的范围,请尝试这样的事情。
onActivate: function(me, container) {
var that = this;
var geo = Ext.create('Ext.util.Geolocation', {
autoUpdate: false,
listeners: {
locationupdate: function(geo) {
var currentLat = geo.getLatitude();
var currentLng = geo.getLongitude();
var PT = new Ext.util.Calc.myCal('METHOD1');
var c = PT.setC([currentLat, currentLng]);
that.setHtml(c); // not working
console.log(c);
}
}
});
geo.updateLocation();
}
有几个选项可以做到这一点:
- 如果卡后面的某个地方有一个模型实例,一个记录,那么最简单、最有效和最优雅的是在模型级别将计算作为计算字段实现。记录字段通常很容易在视图中显示。
- 您可以将该函数实现为命名空间的方法,以便可以从任何地方调用它:
MyApp.myCalc(arguments)
。视图,卡,将侦听激活事件,调用方法并显示结果。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- JQuery合并了keyup和focusout两个函数
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 我可以在json对象中添加一个函数吗
- AngularJS:我可以跳过函数参数回调吗
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 如何在调用javascript函数时将javascript触摸旋转添加到html中
- 自定义计算函数煎茶触摸
- 如何通过触摸 html5 中的按钮来调用函数
- 触摸启动事件上的Javascript触发函数
- 在输入文本字段触摸后调用相同的函数
- 禁用Swiper.js在Rangeslider.js的onSlide回调函数上的触摸事件
- 煎茶触摸 - 不调用视图中的调用函数