Yo quiero hacer mis datos accesible desde fuera de mi vista modelo. Así que he creado un objeto de modelo de vista, pero estoy teniendo problemas para la unión de sus propiedades. Tenga en cuenta que todo está funcionando correctamente dentro de mi modelo de vista.

Básicamente una versión simplificada de la pseudo-código:

function Users() {
    name;
    date;
}

function userHealthModel() {
     function createUsers() { new Users[] };
}

self.userModel = ko.observable(new userHealthModel());
self.userModel.createUsers();

Si llamo a la createUsers método dentro de mi modelo de mi enlazar funciona bien.

Aquí es un jsFiddle, nota mi problema es todo el camino en la final de la JS, me comentó:
http://jsfiddle.net/fourgates/jpk22/1/

Soy nuevo en el JS y KO. no muy seguro de cómo utilizar $root, $los padres, etc. Por favor, ayudar a un compañero de programación entusiasta! Muchas gracias de antemano!

Por favor, pregunte a una pregunta específica en lugar de la publicación de un gran montón de código que de alguna manera «no funciona». Tienes ya un montón de configurar, así que ¿dónde exactamente están luchando?
im sorry por favor, disculpe mi pereza, estaba muy cansado cuando escribí esto, sólo tomó una siesta. reescribí mi pregunta con un jsfiddle. pero básicamente estoy teniendo problemas de las propiedades de unión de un viewModel objeto hice, fuera de mi vista modelo.

OriginalEl autor Phil Ninan | 2012-04-01

1 Comentario

  1. 10

    Todavía no estoy 100% seguro si entiendo lo que usted está tratando de hacer, pero aquí están algunas ideas sobre el código en su violín:

    Si usted tiene algo así como

    var self = this;

    en el ámbito global (= no en una función), this puntos a la ventana de objetos. Por lo tanto, esto no tiene ningún sentido.

    self.userModel = ko.observable(new userHealthModel());

    La creación de un observable de un modelo de vista no es necesario – no esperamos que todo el modelo a cambio, ¿verdad? Siempre conservará un modelo de usuario y no de repente se convierten en un mensaje de «modelo» o lo que sea.

    Si quieres llamar a un método de su modelo de vista desde el exterior, acaba de hacer un ejemplo:

    var userModel = new userHealthModel();
    userModel.createUsers();
    
    //Use "userModel" to access the methods and properties
    //like you're using "self" inside the view model:
    userModel.users2()[1].userId(5);
    
    //now apply the binding to THE SAME view model
    ko.applyBindings(userModel);

    http://jsfiddle.net/jpk22/3/

    Si esto no es lo que estabas buscando, ¡háganoslo saber!

    gracias eso es exactamente lo que yo estaba tratando de hacer! que tiene sentido que el modelo no sería observable. Muchas gracias por la ayuda!

    OriginalEl autor Niko

Dejar respuesta

Please enter your comment!
Please enter your name here