2015-07-20 18 views
9

Ai đó có thể vui lòng cung cấp ví dụ về việc triển khai đúng dom-if không?Polymer 1.0: Trợ giúp sử dụng dom-if

Không có ví dụ về cách sử dụng phù hợp được cung cấp bởi official documentation. (Xin lỗi, không có liên kết trực tiếp. Phải sử dụng menu ở phía trên bên trái và chọn dom-if).

Đây là những gì tôi có cho đến nay. Rõ ràng, nó không hoạt động.

<template> 
    ... 
    <template is="dom-if" if="{{action}}=='Login'"> 
     <!-- Also tried: if="{{action=='Login'}}" --> 
    <a href="#">Forgot password?</a> 
    </template> 
    ... 
</template> 

Trả lời

25

Đó là cồng kềnh, nhưng bạn phải làm điều này:

<template is="dom-if" if="[[_actionIsLogin(action)]]"> 
    <a href="#">Forgot password?</a> 
</template> 

<script> 
    Polymer({ 
    ... 
    _actionIsLogin: function(action) { 
     return action === 'Login'; 
    } 
    ... 
    }); 
</script> 

Rõ ràng tạo ra một hàm trả về một trong hai true hoặc false.

+0

Điều này rất hữu ích vì nó khiến tôi suy nghĩ về một cách tiếp cận cấp bách. Vì vậy, upvoted! Nhưng không thể chấp nhận vì mã đặc biệt này không hoạt động. Hãy sửa đổi nó! Tôi sẽ. Cảm ơn! =] – Mowzer

+0

Ngoài ra, tôi không nghĩ rằng bạn có thể vượt qua một đối số cho một chức năng như thế? Bạn có thể? [Xem câu hỏi này] (http://stackoverflow.com/questions/31441401/polymer-1-0-is-there-a-way-to-pass-an-argument-to-a-polymer-function-from- an-at). – Mowzer

+0

Bạn có thể chuyển đối số cho các liên kết được tính nếu bạn khai báo chúng dưới dạng thuộc tính. Trong [tài liệu] (https://www.polymer-project.org/1.0/docs/devguide/data-binding.html#annotated-computed) nó nói "Đối số có thể là thuộc tính phụ thuộc hoặc chuỗi hoặc số chữ". – Maria

4

tôi nghĩ rằng ví dụ sau đây là khá nhiều thẳng về phía trước và dễ dàng để hiểu/thực hiện (nó không có trong liên kết mà bạn đã cung cấp):

https://www.polymer-project.org/1.0/docs/devguide/templates.html

khỏi trang .. .

<div>{{user.name}}</div> 

<template is="dom-if" if="{{user.isAdmin}}"> 
    Only admins will see this. 
    <div>{{user.secretAdminStuff}}</div> 
</template> 
... 

hy vọng nó giúp S.

+0

Nó giúp bởi vì bạn đã cho tôi tài liệu bổ sung. Vì vậy, upvoted! Nhưng nó không trả lời câu hỏi bởi vì tôi đang cố gắng để đánh giá một biểu thức 'boolean', nơi bạn chỉ có một giá trị' boolean' đơn giản với 'user.isAdmin'. Việc đánh giá biểu hiện là thủ thuật ở đây và là một phần thiết yếu của câu hỏi. Chưa có câu trả lời nào được chấp nhận nên vui lòng thử lại! =] – Mowzer

1
<template> 
    <iron-ajax   
      auto 
      url="https://jsonplaceholder.typicode.com/todos" 
      handle-as="json" 
      last-response="{{baul}}"> 
    </iron-ajax> 

    <template is="dom-repeat" items="{{baul}}" > 
     <template is="dom-if" if="{{item.completed}}">{{item.title}} is completed<br></template> 
    </template> 


</template>