2016-11-24 1 views
0

Est-il possible d'avoir un événement click dans le modèle et l'appeler à partir de vue différente ci-dessous est mon code, qui ont 2 vue utilisent même studenviewModel, maintenant je veux clic événement dans le modèle besoin d'aide, si je l'utilise cliquez événement dans le studentViewModel cela fonctionne mais à l'intérieur classModel sa ne fonctionne pasClick événement dans Knockout.js

function studentViewModel() 
{ 
    self.studentDetails=ko.observaleArray([]); 
    sum function to call ajax method 
} 

function classModel(data) 
{ 
    get bind to class 

    self.getClassdetails=function() 
    { 
     } 
} 

<div id="view1" data-role="view" class="student"> 

<div> 
    <div id="view2" data-role="view" class="student"> 
    <button data-bind="getClassdetails"><button> 
    <div> 

    ko.applybinding(new studentViewModel(),documentgetelementByClassName("student")) 
+0

Vous cherchez peut-être un plugin knockout-postbox. Vous utilisez Knockout V2.x? – connexo

+0

oui j'utilise Knockout 3.3.0 v –

+0

Pourquoi avez-vous ajouté [tag: knockout-2.0] à votre question alors? – connexo

Répondre

0

Je fais une solution pseudo-rugueuse pour illustrer l'idée. Vous pouvez nettoyer la syntaxe et améliorer l'interdépendance des classes. L'idée est d'exprimer la dépendance de la vue dans vos modèles:

function studentViewModel() 
{ 
    --> self.classStudentBelongsTo = ... somehow inject this or new it here 
    self.studentDetails=ko.observaleArray([]); 
    sum function to call ajax method 
} 

function classModel(data) 
{ 
    get bind to class 

    self.getClassdetails=function() 
    { 
     } 
} 

<div id="view1" data-role="view" class="student"> 

<div> 
    <div id="view2" data-role="view" class="student"> 
    <button data-bind="--> classStudentBelongsTo.getClassdetails"><button> 
    <div> 

    ko.applybinding(new studentViewModel(),documentgetelementByClassName("student")) 
+0

@thanks, mais je suis incapable de le comprendre, s'il vous plaît pouvez-vous expliquer brièvement .. –