【问题标题】:jsViews dynamic linking to a different item in arrayjsViews动态链接到数组中的不同项目
【发布时间】:2013-10-23 14:38:05
【问题描述】:

我试图让动态if 链接到数组中不同项的属性。

我当前的代码:

加载器

for (...) {

    var index = this.App.Data.Questions.push({
       ...
    }) - 1;

    if (CompareGuids(this.App.Data.Questions[index].QuestionId, '06EF685A-629C-42A5-9394-ACDEDF4798A5')) {
        this.App.PregnancyQuestionId = index;
    }

模板

{^{if ~root.Data.Questions[~root.PregnancyQuestionId].Response.ResponseText == "true"}}
   {{include #data tmpl="Clinical-History-QuestionWrapper-SingleQuestion"/}}
{{/if}}

它适用于初始加载,但不会更新。

注意我假设我可以使用 ~root 中的布尔属性来实现此目的,然后让 $.observable(...).oberserve(...) 更新此属性,但我更愿意直接访问。

【问题讨论】:

    标签: templating jsviews


    【解决方案1】:

    看起来您需要做的就是确保您正在明显更改PregnancyQuestionId。仅仅分配一个值并不能触发数据链接来更新 UI。

    你需要写:

    $.observable(this.App).setProperty("PregnancyQuestionId", index);
    

    那应该会正确触发绑定...

    【讨论】:

    • @mrs_sheep - 如果上述方法适合您,您能否“接受”回复,以便其他人知道这是“正确答案”。同样对于您过去提出的其他问题,一些您从未表明回复是否对您有用...谢谢!
    • 它有效。我将很快解决其他问题。感谢所有惊人而快速的支持!
    • JSON 用户注意:我的Response.ResponseText 的初始值为"true""false",后来通过jsViews 修改为truefalse。我写了一个助手来解决这个问题:bool: function (value) { return value == true || value == "true"; }
    猜你喜欢
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多