一、禁用加载器
方法一:在js文件中书写
avalon.config({
loader: false
})
方法二:在avalon源文件中添加
avalon.config({
loader: false
})
方法三:在源文件中删除amd加载器
二、作用域绑定
含义:作用域范围圈定,在一个页面中需要形成多个模块,每个模块需要实现不同功能。
1、ms-controller 可以互相嵌套的作用域
含义:在页面上表现为一个特殊属性,其属性值为ViewModel的$id,表现将在此元素或者其子孙元素上圈定它的作用域范围,但是如果这些html存在它没有的属性,它可以向上查找上一级的ViewModel的属性。换言之,ms-controller可以互相嵌套。
<script type="text/javascript">
avalon.ready(function(){//等页面加载完毕再执行avalon代码
avalon.define({
$id:"AAA",
name:"liger",
color:"green"
});
avalon.define({
$id:"BBB",
name:"sphinx",
color:"red"
})
avalon.define({
$id:"CCC",
name:"dragon"
})
avalon.scan();//扫描html将插值表达式转化为正常的浏览器html代码段
})
</script>
</head>
<body>
<div ms-controller="AAA">
<div>{{name}}:{{color}}</div>
<div ms-controller="BBB">
<div>{{name}}:{{color}}</div>
<div ms-controller="CCC">
<div>{{name}}:{{color}}</div><!-- 向上继承color的值 -->
</div>
</div>
</div>
</body>
输出:
2、ms-important 不可互相嵌套的作用域,不会向上查找ViewModel属性
<script type="text/javascript">
avalon.ready(function(){//等页面加载完毕再执行avalon代码
avalon.define({
$id:"CCC",
name:"dragon",
color:"red"
})
avalon.define({
$id:"DDD",
name:"sorice"
});
avalon.scan();//扫描html将插值表达式转化为正常的浏览器html代码段
})
</script>
</head>
<body>
<div ms-controller="CCC">
<div>{{name}}:{{color}}</div><!-- 向上继承color的值 -->
<div ms-important="DDD"><!-- 不会向上查到ViewMolde属性 -->
<div>{{name}}:{{color}}</div>
</div>
</div>
</body>
输出:
3、ms-skip 不应用任何ViewModel属性的作用域,直接输出插值表达式,不会输出插值表达式的值
<script type="text/javascript">
avalon.ready(function(){//等页面加载完毕再执行avalon代码
avalon.define({
$id:"DDD",
name:"sorice"
});
avalon.define({
$id:"EEE",
name:"static",
color:"reads"
})
avalon.scan();//扫描html将插值表达式转化为正常的浏览器html代码段
})
</script>
</head>
<body>
<div ms-skip="EEE"><!-- 直接输出插值表达式,不会输出插值表达式的值,也不会继承 -->
<div>{{name}}:{{color}}</div>
</div>
</body>
时间: 2024-11-14 09:12:12