通过ajax绑定和更新durandal小部件数据

通过ajax绑定和更新durandal小部件数据,ajax,knockout.js,widget,durandal,Ajax,Knockout.js,Widget,Durandal,我想在视图中使用durandual小部件,小部件绑定数据应该能够通过页面视图模型js的AJAX调用进行更新。我把我的代码贴在下面 这是我的页面模型:它应该将电子邮件更新为“ajax呼叫后你好” 这是我的页面HTML和小部件调用 <div data-bind="widget: { kind: 'email', email: email, prompt: 'Email', id: 'Profile_Email', name: 'UserCode' }"></div> def

我想在视图中使用durandual小部件,小部件绑定数据应该能够通过页面视图模型js的AJAX调用进行更新。我把我的代码贴在下面

这是我的页面模型:它应该将电子邮件更新为“ajax呼叫后你好”

这是我的页面HTML和小部件调用

<div data-bind="widget: { kind: 'email', email: email, prompt: 'Email', id: 'Profile_Email', name: 'UserCode' }"></div>
define(['plugins/router', 'durandal/app', 'knockout'], function (router, app, ko, composition) {

function emailWidget() {
    var self = this;
    self.activate = function (options) {
        self.email = ko.observable(ko.unwrap(options.email));
        self.prompt = ko.observable(ko.unwrap(options.prompt));
        self.id = ko.unwrap(options.id);
        self.name = ko.unwrap(options.name);
    };
}

return emailWidget;});
<input type="email"  placeholder="Email" class="form-control" style="text-align:right" data-bind="value: email, attr: { 'id': id, 'name':name}"/>
这是我的小部件视图html

<div data-bind="widget: { kind: 'email', email: email, prompt: 'Email', id: 'Profile_Email', name: 'UserCode' }"></div>
define(['plugins/router', 'durandal/app', 'knockout'], function (router, app, ko, composition) {

function emailWidget() {
    var self = this;
    self.activate = function (options) {
        self.email = ko.observable(ko.unwrap(options.email));
        self.prompt = ko.observable(ko.unwrap(options.prompt));
        self.id = ko.unwrap(options.id);
        self.name = ko.unwrap(options.name);
    };
}

return emailWidget;});
<input type="email"  placeholder="Email" class="form-control" style="text-align:right" data-bind="value: email, attr: { 'id': id, 'name':name}"/>

如果我没有将其与小部件一起使用,电子邮件值将更新 使用小部件时,值将保持在“Login/Register2222”
请帮助我,我也有同样的问题,我知道原因,但我不认为有解决办法

我们这样做的地方:

所有接受变量:email、prompt、id和name都是不可见的。它们是作为属性(在我们的例子中是选项的属性)函数(选项)出现的。然后你把它们分配给可观察的对象


因此,我们在调用者视图模型中有一个可观察对象,在小部件中有另一个可观察对象,但两者之间的链接是不可观察的。

您使用的是什么版本的jQuery?我之所以问这个问题,是因为您所实现的
$ajax().success()
函数在jqueryv1.8中就被弃用了。我使用的是2.0.3。成功事件与其他功能仍能正常工作