2014-04-01 18 views
9

Tôi đang cố gắng để làm cho một yếu tố lựa chọn với các tùy chọn, như thế nàytay lái: có điều kiện thêm thuộc tính

<select dropdown multiple class="dropdown" name="color"> 
     {{#each colors}} 
      <option value="{{value}}" {{isSelected parentColor id}}>{{title}}></option> 
     {{/each}} 
</select> 

Tôi đang sử dụng tay lái sau helper

Handlebars.registerHelper('isSelected', function(input, color) { 
    return input === color ? 'selected' : ''; 
}); 

Vấn đề là các selected thuộc tính không hiển thị trên bất kỳ phần tử option nào, nhưng khi tôi đặt một console.log trong trình trợ giúp tay lái, tôi thấy rằng một đối sánh khớp nhau (input === color === true). Bất kỳ ý tưởng những gì tôi làm sai ở đây?

Trả lời

10

Đây là một ví dụ làm việc của những gì được mô tả,

http://jsfiddle.net/rtLGR/

hbs

<h1>Handlebars JS Example</h1> 
<script id="some-template" type="text/x-handlebars-template"> 

    <select dropdown multiple class="dropdown" name="color"> 
     {{#each colors}} 
      <option value="{{value}}" {{isSelected parentColor id}}>{{title}}</option> 
     {{/each}} 
</select> 
</script> 

js

var source = $("#some-template").html(); 
var template = Handlebars.compile(source); 

var data = { 
    colors: [ 
     {id:1,value:1,title:"red",parentColor:2}, 
     {id:2,value:2,title:"green",parentColor:2}, 
     {id:3,value:3,title:"blue",parentColor:1} 
    ] 
}; 


Handlebars.registerHelper('isSelected', function (input, color) { 
    return input === color ? 'selected' : ''; 
}); 

$('body').append(template(data)); 
Các vấn đề liên quan