Closed StudentWan closed 7 years ago
组件的根节点只接收从父组件传进来的 prop 吧
感觉像是一个Bug
@Dafrok 我大概了解了,就是说这个{==}
是从父组件传过来的,就是prop了。
那这样的话,又有一点问题,下面这段代码就不会报错...:
var MyApp = san.defineComponent({
template: '<input value="{= online =}"></input>'
}
}
});
var myApp = new MyApp();
myApp.attach(document.body);
我的理解是不管是select
还是input
中的online
都是父组件prop的data。
为什么一个会出错一个不会呢= =
San中不是一定需要初始化数据对象的吧?
首先说一下我刚才的结论是错的,并且你也没 get 我的点。我打个比方,之前使用的时候,下面这个 case 中我期望看到一个红字蓝底的 233,但是实际输出只是红字,蓝底没了。
然而,刚刚写了个 case,证明父节点传入的 style 属性只是优先级高而已,如果删掉父节点的 style,233 就会变成蓝底。
const Comp = san.defineComponent({
template: `<div style="background: blue">23333</div>`
})
const App = san.defineComponent({
components: {
comp: Comp
},
template: `<div>
<comp style="color: red"></comp>
</div>`
})
const app = new App()
app.attach(document.body)
@Dafrok 我跑了一下你提供的这个代码,输出的是红字蓝底啊...如果父组件也写了background的话确实会覆盖子组件的样式,不过不是很能理解这个例子跟问题的关联... 不是很能get到点,能讲的再浅显一点吗? 我比较菜...
啥?你确定是红底蓝字?你看看这个 case 是啥样子 https://codepen.io/Dafrok/pen/EXvrEQ
这个例子和问题没什么关联,只是举例说明我在 2 楼回复的结论是错的而已…………
@Dafrok 我不是在Codepen上面跑的: http://danielwan.me/demo/sanstyle.html demo在这里...
@Dafrok 所以大佬正确的结论应该是什么呢ORZ
结论同 3 楼。。
@Dafrok 感谢大佬...
应该是个bug
起初我以为是文档写的有点问题,不过后来发现不是,select中也确实是可以用
{==}
来实现双向绑定的。但是在写代码还是还是出现一点问题:
这样写会报错:
但是
<select bind-value="online">
或者在select外面套一层根元素如div,结果却是正常的不是很清楚原因,求指教...