面对Knockout绑定问题,如“无法解析绑定”。

时间:2013-12-26 14:15:32

标签: asp.net-mvc-4 knockout.js knockout-2.0

我是Knockout Js的新手。 我试图绑定值,有时值得绑定,有时它给我: 无法解析绑定。 绑定值:text:parentName 消息:未定义parentName;

我如何确保每次都绑定? 这是我的代码:

var vm= = function() {
            Id: ko.observable();
            Name: ko.observable();
            description: ko.observable();
            parentName:ko.observable();
}
var getUserGroup = function(Id) {
            var ajaxOptions = {
                url: 'Api/Group/Get?id=' + Id,
                type: 'GET',
                dataType: 'json'
            };

            function gotUserGroup(data) {

                vm.Id = data.Id;
                vm.Name = data.name;
                vm.description = data.description;
                vm.parentName =getName(data.parentId)  
return data;              
            }

    function getName(data.Id)
    {
                var ajaxOptions = {
                   url: 'Api/Client/Get?Id=' + Id,
                    type: 'GET',
                    dataType: 'json'
                };
                function getValue(data) {
                    return data.name;

                }

               $.ajax(ajaxOptions).then(getValue);
    }

            return $.ajax(ajaxOptions).then(gotUserGroup).then(getName);
        };

2 个答案:

答案 0 :(得分:0)

试试这个:

var vm = {
            Id: ko.observable(),
            Name: ko.observable(),
            description: ko.observable(),
            parentName:ko.observable()
}

(我用“,”代替“;”)

答案 1 :(得分:0)

我找到了解决方案。

    var vm = {
                Id: ko.observable(),
                Name: ko.observable(),
                description: ko.observable(),
                parentName:ko.observable()
    }
    var getUserGroup = function(Id) {
                var ajaxOptions = {
                    url: 'Api/Group/Get?id=' + Id,
                    type: 'GET',
                    dataType: 'json'
                };

                function gotUserGroup(data) {

                    vm.Id (data.Id);
                    vm.Name (data.name);
                    vm.description (data.description);

    return data;              
                }
  function getName(data.Id)
    {
                var ajaxOptions = {
                   url: 'Api/Client/Get?Id=' + Id,
                    type: 'GET',
                    dataType: 'json'
                };
                function getValue(data) {
                     vm.parentName (data.name); 

                }

               $.ajax(ajaxOptions).then(getValue);
    }

            return $.ajax(ajaxOptions).then(gotUserGroup).then(getName);
        };