select 中的此选项不正确

2023-12-10

我正在尝试将 Typescript 与 Durandal 一起使用。我正在尝试使用打字稿制作入门示例,它适用于大多数方法和类。然而,在下面的 Flickr 类中,我在 select 方法中遇到了问题。当调用此方法时,似乎这不是 Flickr 类,而是所选项目。 有人可以帮我找出问题所在吗? 其他方法按预期工作。

亲切的问候, 马尔温

///<reference path='../../Scripts/typings/requirejs/require.d.ts'/>
///<reference path='../../Scripts/typings/durandal/durandal.d.ts'/>
///<reference path='../../Scripts/typings/knockout/knockout.d.ts'/>

class Flickr 
{
    app: App;
    http: Http;

    displayName = 'Flickr';
    images = ko.observableArray([]);

    constructor(app: App, http: Http)
    {
        this.app = app;
        this.http = http;
    }

    public activate() : any 
    {
        //the router's activator calls this function and waits for it to complete before proceding
        if (this.images().length > 0) 
        {
            return;
        }

        return this.http.jsonp('http://api.flickr.com/services/feeds/photos_public.gne', { tags: 'mount ranier', tagmode: 'any', format: 'json' }, 'jsoncallback').then((response)=>
        {
            this.images(response.items);
        });
    }
    public select(item : any) {
        //the app model allows easy display of modal dialogs by passing a view model
        //views are usually located by convention, but you an specify it as well with viewUrl
        item.viewUrl = 'views/detail';
        this.app.showModal(item);
    }
    public canDeactivate() : any
    {
        //the router's activator calls this function to see if it can leave the screen
        return this.app.showMessage('Are you sure you want to leave this page?', 'Navigate', ['Yes', 'No']);
    }
}

define(['durandal/http', 'durandal/app'], function (http, app) 
{
    return new Flickr(app, http);
} );

它被编译成以下 JavaScript:

var Flickr = (function () {
    function Flickr(app, http) {
        this.displayName = 'Flickr';
        this.images = ko.observableArray([]);
        this.app = app;
        this.http = http;
    }
    Flickr.prototype.activate = function () {
        var _this = this;
        if(this.images().length > 0) {
            return;
        }
        return this.http.jsonp('http://api.flickr.com/services/feeds/photos_public.gne', {
            tags: 'mount ranier',
            tagmode: 'any',
            format: 'json'
        }, 'jsoncallback').then(function (response) {
            _this.images(response.items);
        });
    };
    Flickr.prototype.select = function (item) {
        item.viewUrl = 'views/detail';
        this.app.showModal(item);
    };
    Flickr.prototype.canDeactivate = function () {
        return this.app.showMessage('Are you sure you want to leave this page?', 'Navigate', [
            'Yes', 
            'No'
        ]);
    };
    return Flickr;
})();
define([
    'durandal/http', 
    'durandal/app'
], function (http, app) {
    return new Flickr(app, http);
});
//@ sourceMappingURL=flickr.js.map

要让“this”引用视图模型,您可以执行以下操作(假设 flickr.html 视图尚未更改):

更改缩略图标签上的点击绑定

<a href="#" class="thumbnail" data-bind="click:$parent.select">

to

<a href="#" class="thumbnail" data-bind="click: function (item) { $parent.select(item); }">

因为您随后直接在 $parent 对象(视图模型)上调用 select 方法,所以视图模型将绑定到“this”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

select 中的此选项不正确 的相关文章

随机推荐

  • WMI 进程监视使用过多的 CPU!还有更好的方法吗?

    我需要观察 Windows 计算机上某些进程何时启动或停止 我目前正在使用 WMI 系统并每 5 秒查询一次 但这会导致每 5 秒出现一次 CPU 峰值 因为 WMI 是 WMI 有更好的方法吗 我可以只列出正在运行的进程 并通过 Syst
  • 限制批处理作业的生命周期

    有没有办法将正在运行的 Spring Batch 作业的生命周期限制为例如23小时 我们每天通过 cron 作业启动批处理作业 该作业大约需要 9 个小时 在某些情况下 数据库连接速度太慢 导致作业需要 60 多个小时才能完成 问题是下一个
  • 获取每个子数组每列的数组和

    这是我的数组 array HRI gt 14157 72 39140 94 36383 66 38508 8424 14157 72 39140 94 36383 66 38508 8424 14157 72 39140 94 36383
  • 依赖方法类型有哪些引人注目的用例?

    依赖方法类型以前是一个实验性功能 现在已经成为中继中默认启用 显然这似乎创造了一些兴奋在 Scala 社区中 乍一看 这有什么用处并不是很明显 Heiko Seeberger 发布了一个依赖方法类型的简单示例here 正如在评论中可以看到的
  • 使用 C# 在 Google 电子表格中创建公式时添加撇号

    当我通过 C 在 Google Sheets 中创建公式时 该公式会在前面加上撇号 如下所示 SUM B3 B5 由于开头有撇号 公式被视为字符串 因此它不会执行应有的操作 你能帮我吗 下面是我的代码 var formula1 SUM B3
  • 为什么 GMail API 会从外发邮件中删除文档类型和注释?

    谷歌邮箱消息发送API似乎正在从外发消息中删除 doctype 和 HTML 注释 Repro Go to https developers google com gmail api v1 reference users messages
  • Boost Graph 最大流算法找出最小 S/T 割上的弧

    我有一个应用程序 对于给定的固定数量的顶点 需要解决从给定的固定源 S 到给定的固定接收器 T 的大量不同的最大流算法 每个最大流问题的不同之处在于有向弧本身随着其容量的变化而变化 作为示例 请参见下文 顶点数量保持固定 但实际的弧及其容量
  • 在 Python 中使用 Selenium 上传文件

    是否可以在Python脚本中使用selenium上传文件附件 可以通过以下方式完成 element driver find element by name file element send keys home pavel Desktop
  • 集成 Spotify Android 库

    所以我想将 Spotify 库集成到 Android 应用程序中 我去了https developer spotify com technologies libspotify 并下载了他们的lib libspotify 12 1 51 An
  • 设置表格列宽

    我有一个用于收件箱的简单表格 如下所示 table border 1 tr th From th th Subject th th Date th tr table 如何设置宽度 使 从 和 日期 为页面宽度的 15 而 主题 为 70 我
  • 如何在父组件的ajax更新中排除子组件?

    我正在使用 PrimeFaces
  • 在 Windows Mobile 6.x 上创建 .NET Windows 服务

    我想在 NET 中创建一个在 WinMo 6 x 上运行的 Windows 服务 有很多文档介绍如何在 MFC 和非 MFC 中执行此操作http msdn microsoft com en us library ms838599 aspx
  • Raspberry Pi RuntimeError:已为此 GPIO 通道启用冲突边缘检测

    我正在遵循此处找到的教程 https www linkedin com pulse prepare your raspberry pi work aws iot kay lerch I have not even begun the int
  • 如何在 angularjs 1.0.8 中使用 $http 加载跨域 JSON,就像在 1.2.0 中一样

    使用 Angular 1 0 8 我试图加载JSON来自不支持 get OPTIONS 的服务器 因此出现错误 1 0 8 演示 OPTIONS http www json generator com j cdnueRTRmG 405 Me
  • 子文件夹和 mod-rewrite

    我需要更改当前的重写规则以适应管理文件夹 这是我当前的 mod 重写代码 RewriteEngine On RewriteCond REQUEST FILENAME f RewriteCond REQUEST FILENAME d Rewr
  • 更改Python中的文件扩展名

    假设从index py使用 CGI 我有 post 文件foo fasta显示文件 我想改变foo fasta的文件扩展名是foo aln在显示文件中 我该怎么做 优雅的使用方式路径库 路径 from pathlib import Path
  • 用于反转布尔值的简写赋值运算符

    基本算术运算符有简写运算符 例如 x x 2 x 2 or y y 2 y 2 但是 我想知道是否有任何这样的运算符可以简单地反转布尔值 例如 假设z true 是否有更短的等价物 z z 我知道这不只是 z 因为那样它只会返回相反的值z
  • ES6 对象方法赋值之间的区别:a、'a' 和 ['a']?

    使用 ES6 我可以创建一个具有如下功能的新对象 var obj something 这就说得通了 但我也可以这样做 var obj something 或者我可以这样做 var obj something 这三种语法有区别吗 为什么所有这
  • Ansible 无法通过 SSH 连接到 Windows 节点

    我正在尝试配置运行 OpenSSH 的 Windows 节点 https github com PowerShell Win32 OpenSSH 通过 Ansible 虽然正常的 SSH 连接有效 但 Ansible 似乎无法连接到节点 正
  • select 中的此选项不正确

    我正在尝试将 Typescript 与 Durandal 一起使用 我正在尝试使用打字稿制作入门示例 它适用于大多数方法和类 然而 在下面的 Flickr 类中 我在 select 方法中遇到了问题 当调用此方法时 似乎这不是 Flickr