FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

ListView: Inconsistency retrieving bindingContext in tap handler · Issue #940 · NativeScript/NativeScript · GitHub

ListView: Inconsistency retrieving bindingContext in tap handler #940

Description

This is a small issue that has tripped me up before, and which was also reported to me on Twitter. The syntax to get the bindingContext in a list view item's tap handler varies based on the type of element you use. Here's a short example:

<Page loaded="loaded">
    <ListView items="{{ myList }}">
        <ListView.itemTemplate>
            <StackLayout>
                <Button tap="buttonTap" text="Hi, I'm a button" />
                <Label tap="labelTap" text="Hi, I'm a label" />
            </StackLayout>
        </ListView.itemTemplate>
    </ListView>
</Page>
var observableModule = require("data/observable");
var observableArrayModule = require("data/observable-array");

var pageData = new observableModule.Observable({
    myList: new observableArrayModule.ObservableArray(["foo", "bar"])
});

exports.loaded = function(args) {
    var page = args.object;
    page.bindingContext = pageData;
};

exports.buttonTap = function(args) {
    console.log(args.object.bindingContext);
};
exports.labelTap = function(args) {
    console.log(args.view.bindingContext)
};

The thing to notice here is that buttonTap uses args.object.bindingContext, whereas labelTap uses args.view.bindingContext to get a reference to the same data.

It seems like the API should be the same regardless of what type of UI component you use. A consistent approach would also make it far easier to share code.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions


    Back | FazBrowse Home | New Git URL