将Vue.js与WebComponents一起使用,例如Paper-Elements by Polymer

时间:2017-04-14 04:43:41

标签: javascript polymer vuejs2 web-component

我正在创建一个Web应用程序(服务器渲染,而不是SPA),但是具有一些客户端功能,当其他元素具有某些值时,这样的隐藏元素,进行HTTP调用或验证一些输入字段。

现在,我使用WebComponents(纸质元素和其他人)制作用户界面,使用Vanilla JavaScript(带有一些Polyfill,如WebComponents.js或fetch.js)来实现这一功能。

然而,到目前为止,我已经意识到我有许多JavaScript行可以做(比如在不满足条件时隐藏输入字段),可以通过像Vue.js这样的框架减少(甚至删除)和带有指令的表达式HTML。

我的问题是,当我尝试将Vue.js与纸质元素或其他元素一起使用时,像v-model这样的Vue.js指令不起作用(甚至纸质元素值属性为{ {1}}与标准HTML元素一样。)

我尝试使用value代替:value,这样做有效,但只有单向数据绑定(这在v-model中是正常的)但我需要双向数据绑定v-bindpaper-elements无法正常工作。

一个想法可以是,使用冒号(v-model的简写)来表示单向数据绑定(例如v-bind),使用两个冒号来表示任何属性中的双向数据绑定(在某些WebComponents中,在:disabled="someCondition"之外的其他HTML属性中执行此操作非常有用(例如value)。

有人知道任何带有表达式HTML的框架,比如Vue.js,它实现数据绑定(在任何html属性中都是双向的)和基本控制结构(如::valuev-if)或者做两种方式的数据使用Vue.js绑定任何HTML属性(更简单的说,使用纸质元素进行v模型)。

我不知道让WebComponents使用Vue.js,因为我使用Polymer来做到这一点。

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以用VueJs做 :value="value" @input="value = $event.target.value"

而不是v-model="value"

答案 1 :(得分:0)

是的,可以用aurelia来做到这一点:

{ "OriginalText": "My email is someone@address.com phone at 999-999-9999 staying at 99999 99th Avenue City WA, 99999", "NormalizedText": "My email is someone@address.com phone at 999-999-9999 staying at 99999 99th Avenue City WA, 99999", "Misrepresentation": null, "PII": { "Email": [ { "Detected": "someone@address.com", "SubType": "Regular", "Text": "someone@address.com", "Index": 12 } ], "IPA": [], "Phone": [ { "CountryCode": "US", "Text": "999-999-9999", "Index": 50 } ], "Address": [ { "Text": "99th Avenue City WA, 99999", "Index": 80 } ] }, "Language": "eng", "Terms": null, "Status": { "Code": 3000, "Description": "OK", "Exception": null }, "TrackingId": "xxxxxxxxxxxxxxx" }