Vue 范围新鲜
Vue scope fresh
我只是用 vue.js 和 jquery。我的情况是,我试图用 jquery 将侧边栏 html 代码(里面有 vue 语法)注入 main.html。但是,在我将sidebar.html注入到main.html之后,vue.js无法编译注入的vue语法。那么有人可以帮我解决这个问题吗?
vue有没有angularscope.apply?
这样的函数
Does vue has function like angular scope.apply?
正如它所说 here,Vue 执行 DOM 异步更新。每当观察到数据更改时,它都会打开一个队列并缓冲在同一事件循环中发生的所有数据更改。在下一个事件循环“tick”中,Vue 刷新队列并执行实际工作。
为了等到Vue.js在数据更改后完成更新DOM,您可以在数据更改后立即使用Vue.nextTick(回调)。回调将在 DOM 更新后调用,这类似于 AngularJS 将代码包装在 $apply() 中并启动 $digest 循环。
代码示例:
HTML
<div id="example">{{ message }}</div>
JS
var vm = new Vue({
el: '#example',
data: {
message: '123'
}
})
vm.message = 'new message' // change data
vm.$el.textContent === 'new message' // false
Vue.nextTick(function () {
vm.$el.textContent === 'new message' // true
})
为什么你的代码不起作用,只看代码就可以诊断出来。
解决您问题的最简单方法是在 jquery 注入后将您的 vue 实例挂载到该元素。这是通过在 vue 构造函数中使用 el option. Or by using $mount
指定它来完成的
很难用 vue.js 将 jquery(它的 html 部分)顺利地变成 运行,我建议一路走 vue。一种简单的方法是一次加载所有 vue 模板,然后只更改数据。
我只是用 vue.js 和 jquery。我的情况是,我试图用 jquery 将侧边栏 html 代码(里面有 vue 语法)注入 main.html。但是,在我将sidebar.html注入到main.html之后,vue.js无法编译注入的vue语法。那么有人可以帮我解决这个问题吗? vue有没有angularscope.apply?
这样的函数Does vue has function like angular scope.apply?
正如它所说 here,Vue 执行 DOM 异步更新。每当观察到数据更改时,它都会打开一个队列并缓冲在同一事件循环中发生的所有数据更改。在下一个事件循环“tick”中,Vue 刷新队列并执行实际工作。
为了等到Vue.js在数据更改后完成更新DOM,您可以在数据更改后立即使用Vue.nextTick(回调)。回调将在 DOM 更新后调用,这类似于 AngularJS 将代码包装在 $apply() 中并启动 $digest 循环。
代码示例:
HTML
<div id="example">{{ message }}</div>
JS
var vm = new Vue({
el: '#example',
data: {
message: '123'
}
})
vm.message = 'new message' // change data
vm.$el.textContent === 'new message' // false
Vue.nextTick(function () {
vm.$el.textContent === 'new message' // true
})
为什么你的代码不起作用,只看代码就可以诊断出来。
解决您问题的最简单方法是在 jquery 注入后将您的 vue 实例挂载到该元素。这是通过在 vue 构造函数中使用 el option. Or by using $mount
指定它来完成的很难用 vue.js 将 jquery(它的 html 部分)顺利地变成 运行,我建议一路走 vue。一种简单的方法是一次加载所有 vue 模板,然后只更改数据。