Skip to content

Commit

Permalink
fix 当第一次没有定义某属性进行隐藏后,然后再替换整个对象,让它拥有此属性时,注释节点重复生成引发的BUG,见index_if4.html
Browse files Browse the repository at this point in the history
  • Loading branch information
qincheng committed Feb 10, 2014
1 parent 04e6d53 commit 1d8ae1f
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 5 deletions.
8 changes: 5 additions & 3 deletions avalon.js
Expand Up @@ -2403,7 +2403,7 @@
try {
placehoder.parentNode.replaceChild(elem, placehoder)
} catch (e) {
avalon.log("ms-if errer" + e.message)
avalon.log("ms-if errer " + e.message)
}
}
} else { //移出DOM树,放进ifSanctuary DIV中,并用注释节点占据原位置
Expand Down Expand Up @@ -2631,8 +2631,10 @@
"if": function(data, vmodels) {
var elem = data.element
elem.removeAttribute(data.name)
data.placehoder = DOC.createComment("ms-if")
data.msInDocument = data.vmodels = vmodels
if (!data.placehoder) {
data.msInDocument = data.placehoder = DOC.createComment("ms-if")
}
data.vmodels = vmodels
scanAttr(elem, vmodels)
parseExprProxy(data.value, vmodels, data)
},
Expand Down
6 changes: 4 additions & 2 deletions avalon.mobile.js
Expand Up @@ -2147,8 +2147,10 @@
"if": function(data, vmodels) {
var elem = data.element
elem.removeAttribute(data.name)
data.placehoder = DOC.createComment("ms-if")
data.msInDocument = data.vmodels = vmodels
if (!data.placehoder) {
data.msInDocument = data.placehoder = DOC.createComment("ms-if")
}
data.vmodels = vmodels
scanAttr(elem, vmodels)
parseExprProxy(data.value, vmodels, data)
},
Expand Down
40 changes: 40 additions & 0 deletions index_if4.html
@@ -0,0 +1,40 @@
<!DOCTYPE html>
<html>
<head>
<title>ms-if</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<script src="avalon.js"></script>

<script>
var detailRange = avalon.define('detailRange', function(vm) {
vm.wt = {}
})

setTimeout(function() {
detailRange.wt = {ID: "132", MC: "显示!!"}
}, 3000)

setTimeout(function() {
detailRange.wt = {}
},5000)

avalon.scan()

</script>
</head>
<body>
<div ms-controller="detailRange" class="parent">
这是比较输出结果:{{wt.ID != null}}
<div class="data-content" ms-visible="wt.ID != null">
这是visible的:
<span>{{wt.MC}}</span>
</div>
<div class="data-content222" ms-if="wt.ID != null">
这是if的:
<span>{{wt.MC}}</span>
</div>
</div>

</body>
</html>

0 comments on commit 1d8ae1f

Please sign in to comment.