<body>
<div id="app">
<button @click="add">添加</button>
<div id="side"></div>
</div>
<script>
new Vue({
el: '#app',
methods:{
add(){
var div = document.getElementById('side');
div.innerHTML='<button @click="show"></button>'
},
show(){
alert('123')
}
}
})
</script>
</body>
如上面的代码?
其中由 js 插进去的 vue 有办法解析吗?
因为有用到插件的时候,插件利用 js 把 html 代码插入到了页面
1
airyland 2017-06-05 09:02:53 +08:00 via iPhone
不能
|
2
AKI 2017-06-05 09:03:50 +08:00
没办法解析,你可以把 dom 写进去,然后用一个 if 不就可以了么?
|
3
Troevil 2017-06-05 09:04:24 +08:00
使用 v-if ,不要动态插入
|
4
ldlood 2017-06-05 09:09:13 +08:00
为什么不用 v-show/v-if
|
5
dnxbf321 2017-06-05 09:15:52 +08:00
forceUpdate 试试
|
6
coo 2017-06-05 09:24:15 +08:00
Vue 提供了 v-html 功能。
|
7
mufeng 2017-06-05 10:09:23 +08:00
v-if 就好了
|
8
az8321550924 2017-06-05 10:14:37 +08:00
你要明白什么是声明式语法
|
9
Aresn 2017-06-05 10:42:05 +08:00
可以的。iView 项目的 2.0.0-rc.13 版本之前,Table 组件都是用这种方法来自定义渲染单元格内容。代码详见:
https://github.com/iview/iview/blob/2.0/src/components/table/cell.vue 但这种办法在某些情况下是存在问题的(比如计算属性),所以 rc.14 版本开始使用 Render 函数了。 |
10
ExploreWay 2017-06-05 11:00:07 +08:00
正在学习 vue,楼主能问一下,express 和 vue 有什么关系,区别,联系吗?怎么结合在一起开发,有相关的案例或教程吗?新手,希望指导。
|
11
wxsm 2017-06-05 11:19:03 +08:00
不行。不过就算可以,这种垃圾代码写出来良心不会痛吗。
|
12
wly19960911 2017-06-05 11:45:11 +08:00
@ExploreWay
#10 express 是 nodejs 的一个后台服务器框架,区别不用说了, 联系是每次改变你的代码内容都需要重新进行 webpack 打包,他们使用 express 去作为服务器运行你的 vue 应用,然后每次改变自动打包,通过服务器自动把改变发给你当前调试这个 vue 应用的浏览器,不用手动刷新或者手动 webpack 打包 |
13
skadi 2017-06-06 09:34:26 +08:00
强行写得话,你的 innerHTML 可以写[render]( https://cn.vuejs.org/v2/api/#render)
不过更好的方法不是大家都说了么. |