2014-09-13 99 views
0

的Javascript無法從功能

(function() { 
    $(function() { 
    var productChooser; 
    productChooser = function() { 
     this.quantity = ko.observable(0); 
     this.productId = ko.observable(1); 
     this.genderId = ko.observable(1); 
     this.sizeId = ko.observable(1); 
     this.colorId = ko.observable(1); 
     this.setGenderAndSize = function(stringtoparse) { 
     var values; 
     console.log(stringtoparse); 
     values = stringtoparse.split(":"); 
     alert("fasdfs"); 
     this.genderId(values[0]); 
     this.sizeId(values[1]); 
     }; 
    }; 
    return ko.applyBindings(new productChooser(), $("#genderAndSizeChooser")[0]); 
    }); 

}).call(this); 

HTML

<div class="btn-group" id="genderAndSizeChooser"> 
    <button type="button" class="btn btn-size dropdown-toggle" data-toggle="dropdown"> 
    Size <span class="caret"></span> 
    </button> 
    <ul class="dropdown-menu sizegen-text" role="menu"> 
    <li class="active"><a href="">CHOOSE A SIZE...</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind("2:2")'>MALE XS</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind("2:2")'>MALE S</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind("2:2")'>MALE M</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind("2:2")'>MALE L</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind("2:2")'>MALE XL</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind("2:2")'>FEMALE XS</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind("2:2")'>FEMALE S</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind("2:2")'>FEMALE M</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind("2:2")'>FEMALE L</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind("2:2")'>FEMALE XL</a></li>  
    </ul> 
</div> 

我無法從setGenderAndSize值獲得價值。一個簡單的console.log(stringtoparse)輸出視圖模型,productChooser {quantity: function, productId: function, genderId: function, sizeId: function, colorId: function…}

如何獲得通過setGenderAndSize傳遞的值?

回答

0

我想通了,你需要添加傳遞的值僅僅是第二個參數:

<div class="btn-group" id="genderAndSizeChooser"> 
    <button type="button" class="btn btn-size dropdown-toggle" data-toggle="dropdown"> 
    Size <span class="caret"></span> 
    </button> 
    <ul class="dropdown-menu sizegen-text" role="menu"> 
    <li class="active"><a href="">CHOOSE A SIZE...</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind($data, "2:2")'>MALE XS</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind($data, "2:2")'>MALE S</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind($data, "2:2")'>MALE M</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind($data, "2:2")'>MALE L</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind($data, "2:2")'>MALE XL</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind($data, "2:2")'>FEMALE XS</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind($data, "2:2")'>FEMALE S</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind($data, "2:2")'>FEMALE M</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind($data, "2:2")'>FEMALE L</a></li> 
    <li><a data-bind='click: setGenderAndSize.bind($data, "2:2")'>FEMALE XL</a></li>  
    </ul> 
</div>