【问题标题】:knockout ascx not functioning淘汰赛 ascx 不起作用
【发布时间】:2012-11-19 19:28:18
【问题描述】:

我目前正在开发一个 Web 应用程序,其中包含一些我需要通过 Knockout 绑定的 UI 控件。 结构如下:MainPage.aspx -> _manageStructures.ascx -> _editStructure.ascx; 所有这些都呈现在同一个页面中,通过 AJAX 添加新组件。 MainPage 绑定工作完美,但 _editStructure 似乎没有获得绑定值。 我所做的是创建一个 ModelView.js 文件,其中包含我在应用程序中需要的两个 ViewModel,然后是一个返回全局对象的“NameSpace”函数。

function v1 (name){
 this.name = ko.observable(name);
}
function v2(views){
 this.views = ko.observable(views);
}

function NameSpace() { }

var global = new NameSpace();

所以,当我需要应用一些绑定时,我要做的是:

var v  =new V1("luis");
global.v1 = v;

ko.applyBindings(global);

然后,在我的 HTML 中,我要做的是:

<input data-bind="value: v1.name" />

现在,问题是我只能让它在主页上运行。

当我尝试将 V2 值绑定到我的 EditPage 上的输入时,该值始终为 null

在我的 _manageStructure.ascx 中,我有一个操作链接,单击该链接将在网页中呈现 _editStructure。 当我在同一页面中执行此操作时,它不起作用,但如果我在新标签页上打开它,它会完美运行......

【问题讨论】:

    标签: knockout.js ascx


    【解决方案1】:

    您可以传递第二个参数来定义要在文档的哪个部分搜索数据绑定属性。例如,ko.applyBindings(myViewModel, document.getElementById('someElementId'))。这会将激活限制为 ID 为 someElementId 的元素及其后代,如果您希望拥有多个视图模型并将每个模型与页面的不同区域相关联,这将非常有用。

    【讨论】:

      猜你喜欢
      • 2014-05-10
      • 1970-01-01
      • 2016-05-20
      • 2014-06-19
      • 2016-02-17
      • 2016-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多