Nativescript RadListView没有绑定到source属性

时间:2016-06-25 10:36:10

标签: telerik observable nativescript nativescript-telerik-ui

我正在尝试实现{N} telerik的UI RadListView。 Here是他们的入门指南,我将其作为参考。

我已经设置了以下XML布局:

  

list.xml

Repo provideRepo();

基本上我将列表视图绑定到包含具有<StackLayout loaded="loaded" xmlns:lv="nativescript-telerik-ui/listview" xmlns="http://www.nativescript.org/tns.xsd"> <lv:RadListView items="{{ rankingsArray }}"> <lv:RadListView.listViewLayout> <lv:ListViewLinearLayout scrollDirection="vertical"/> </lv:RadListView.listViewLayout> </lv:RadListView> <lv:RadListView.itemTemplate> <StackLayout orientation="horizontal" horizontalAlignment="center" class="sl_ranking"> <Label text="{{ name }}"></Label> </StackLayout> </lv:RadListView.itemTemplate> </StackLayout> 属性的子元素的rankingsArray

实际上这是我如何进行绑定:

  

list.js   var HashtagList = require(&#34;〜/ viewmodels / HashtagsList&#34;);

name

HashtagList的类定义为:

exports.loaded = function(args){
    var hashtagList = new HashtagList();
    var profile = args.object;
    profile.bindingContext = hashtagList;
}

如您所见,任何var Hashtag = require("~/classes/Hashtag"); var ObservableModule = require("data/observable-array"); class HashtagList{ constructor(){ } get rankingsArray(){ if(!this._list){ this._list = new ObservableModule.ObservableArray(); this._list.push(new Hashtag("#pizzawithfriends")); this._list.push(new Hashtag("#funky")); } return this._list; } } module.exports = HashtagList; 对象都有一个公共HashtagList属性,该属性返回rankingsArrayobservable array个对象。 以下是Hashtag对象的定义:

  

hashtag.js

Hashtag

问题是由于某种原因我收到以下错误:

"use strict";
var Hashtag = function(name){
    var _name = name;
    //====== NAME GETTER & SETTER ======//
    Object.defineProperty(this,"name",{
        get : function(){
            return _name;
        },
        set : function(value){
            _name = value;
        }
    })
}

module.exports = Hashtag;

屏幕上没有任何内容。 这很奇怪,因为我可以毫无问题地访问Binding: Property: 'name' is invalid or does not exist. SourceProperty: 'name' 。 是什么导致了这种行为?

1 个答案:

答案 0 :(得分:0)

原来我以错误的方式关闭了label标签......

  

错误的方式

<lv:RadListView.itemTemplate>
        <StackLayout orientation="horizontal" horizontalAlignment="center" class="sl_ranking">
            <Label text="{{ name }}"></Label>
        </StackLayout>
    </lv:RadListView.itemTemplate>
  

正确的方式

 <lv:RadListView.itemTemplate>
            <StackLayout orientation="horizontal" horizontalAlignment="center" class="sl_ranking">
                **<Label text="{{ name }}" />**
            </StackLayout>
        </lv:RadListView.itemTemplate>