//js var myNav = Vue.extend({ template: '
{{msg}}
', data: function () { return { msg:'123', } }, mounted:function(){ this.getNavname(); }, methods:{ getNavname:function(){ this.$http.get("server/MyServer.ashx") .then( function(response){ //获取数据后尝试修改组件中msg的值 this.$set(this.msg,'hello') //报错:vue.js:1156 Uncaught (in promise) TypeError: Cannot create property 'hello' on string '123'(…) console.log(response) }, function(response){ console.log(response) }); } } }); new Vue({ el:'#app', components:{ 'my-nav':myNav } })
新手刚入手,求各位大虾指导,告诉我怎么做可以更好。
组件加载正常,也渲染出了123,但是为什么渲染不出修改后的值,获取数据是成功的。
this.$set(this.msg,'hello')
改为
this.$set('msg','hello')
this指向问题吧
getNavname:function(){ const that = this //其他代码 中的this对应用that
为什么不用 this.msg = 'hello' ?