NativeScript应用程序数据绑定崩溃
NativeScript App Data Binding Crash
我有一个NativeScript应用程序,每当我试图将ObservableArray绑定到ListView时,它就会崩溃。
当我注释掉standings.js文件的第9行时,登录函数会运行,standings加载函数也会运行,但当我取消注释该行时,整个应用程序会崩溃,登录函数甚至不会运行。
这里是standings.js:
var dialogsModule = require("ui/dialogs");
var Observable = require("data/observable").Observable;
var ObservableArray = require("data/observable-array").ObservableArray;
var StandingsListViewModel = require("../../shared/view-models/standings-list-view-model");
var page;
var standingsList = new StandingsListViewModel([]);
var pageData = new Observable({
standingsList: standingsList
});
exports.loaded = function(args) {
page = args.object;
page.bindingContext = pageData;
standingsList.load();
};
standings.xml:
<Page loaded="loaded">
<GridLayout rows="auto, *" columns="2*, *">
<Label id="header" text="Standings" colSpan="2" horizontalAlignment="center"/>
<ListView items="{{ standingsList }}" id="standingsList" row="1" colSpan="2">
<ListView.itemTemplate>
<Label text="{{ place }}" horizontalAlignment="left" verticalAlignment="center"/>
<Label text="{{ username }}" col="2" horizontalAlignment="left" verticalAlignment="center"/>
</ListView.itemTemplate>
</ListView>
</GridLayout>
</Page>
和standings-list-view-model.js:
var config = require("../../shared/config");
var fetchModule = require("fetch");
var ObservableArray = require("data/observable-array").ObservableArray;
function StandingsListViewModel(items) {
var viewModel = new ObservableArray(items);
viewModel.load = function() {
console.log("hit");
var url = config.apiURI + "getStandings.cfm?weekid=397";
return fetch(url)
.then(handleErrors)
.then(function(data) {
var parsedData = JSON.parse(data._bodyInit);
var users = parsedData.users;
users.forEach(function(standing) {
viewModel.push({
place: standing.place,
username: standing.username
});
});
console.log(viewModel._array[0].username);
})
.catch(function(error) {
console.log("ERROR: " + error);
});
};
return viewModel;
}
function handleErrors(response) {
if (!response.ok) {
console.log(JSON.stringify(response));
throw Error(response.statusText);
}
return response;
}
module.exports = StandingsListViewModel;
任何关于如何更好地调试的帮助或想法都将不胜感激。
我认为问题出在这里var standingsList = new StandingsListViewModel([]);
。使用new
将创建一个变量类型的对象。但在这里,您将StandingListViewModel()
定义为一个函数,而不是一个可能standingList
没有像您期望的那样返回的类。将该行替换为:
var standingsList = StandingsListViewModel([]);
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- Telerik rad组合框多列数据绑定
- 数据绑定:'系统Char'不包含名为'xxxxx'
- OnsenUI AngularJS数据绑定无法正常工作
- Ionic-item在导航栏中进行双向数据绑定
- 基本D3.js:如何将具有其他属性的数据绑定到元素
- 使用自定义数据属性或将数据绑定到处理程序来处理事件
- ListView的ItemTemplate内的自定义HtmlControl的数据绑定失败
- $http中的Angular 1数据绑定承诺不起作用
- 在何处和何时添加具有数据绑定的元素
- 使用AngularJs数据绑定的三元运算符显示图像
- 为什么针对工厂的Angular数据绑定只适用于函数
- 敲除:如何使用可见数据绑定可见来隐藏段落标记
- 在数据绑定中使用对象敲除绑定
- 如何在angularjs中检查Kendo树视图数据绑定事件
- 将json数据绑定到剑道网格
- AngularJS数据绑定中断ngRepeat+奇怪行为
- JavaScript HTMLElement 属性上的数据绑定 在 Polymer 中
- 在appcelerator titanium中进行数据绑定并避免内存崩溃的最佳做法是什么
- NativeScript应用程序数据绑定崩溃