WeX5数据绑定:with绑定

with绑定用来创建一个绑定上下文,在子元素内的所有绑定都在这个上下文中进行。 示例代码: //.W片段 <h1 bind-text="city"> </h1> <p bind-with="coords"> Latitude: <span bind-text="latitude"> </span>, Longitude: <span bind-text="longitude"> </span> </p> //.js片段 city="London", coords= { latitude: 51.5001524, longitude: -0.1262362 } 在上面的代码中,我们为段落p标签指定了数据上下文coords,在它的子元素中,我们就可以直接绑定coords的属性latitude和longitude了。 另外,with绑定也可以使用虚拟标签: <ul> <li>Header element</li> <!-- [...]

WeX5数据绑定:foreach绑定

foreach绑定用来处理数组,通常用来将一个数组绑定到一个列表或者table中。在foreach绑定中,我们可以使用if、with等嵌套绑定。 示例代码: //.W片段 <table> <thead> <tr><th>First name</th><th>Last name</th></tr> </thead> <tbody bind-foreach="people"> <tr> <td bind-text="firstName"></td> <td bind-text="lastName"></td> </tr> </tbody> </table> //.js片段 people=[ { firstName: 'Bert', lastName: 'Bertington' }, { firstName: 'Charles', lastName: 'Charlesforth' }, { [...]

WeX5数据绑定:customBinding自定义绑定

自定义绑定(Custom Binding)允许我们通过代码实现自定义绑定规则,从而完成更高级的业务需求。 示例代码 //.js片段 justep.Bind.bindingHandlers.yourBindingName = { init: function (element, valueAccessor, allBindings, viewModel, bindingContext) { // This will be called when the binding is first applied to an element // Set up any initial [...]

WeX5数据绑定:selectedOptions绑定

selectedOptions绑定用在select元素中,用来绑定已选中的对象,通常被用在多选列表中。如果列表为单选列表(下拉列表),选中值可以用value绑定。 示例代码 //.W片段 <p> Choose some countries you'd like to visit: <select bind-options="availableCountries" bind-selectedOptions="chosenCountries" size="5" multiple="true"> </select> <button component="$UI/system/components/justep/button/button" class="btn btn-warning" bind-click="buttonClick">点我切换</button> </p> //.js片段 var Model = function(){ this.callParent(); this.availableCountries=justep.Bind.observableArray(['France', 'Germany', 'Spain']); this.chosenCountries=justep.Bind.observableArray(['Germany']); }; [...]

WeX5数据绑定:event绑定

event绑定为DOM元素添加一个或多个事件,例如可以用来添加keypress、mouseover、mouseout等。由于DOM元素的事件较多,ko不可能像定义click绑定、submit绑定那样挨个的定义,因此提供了event绑定。 示例代码: //.W片段 <div> <div bind-event="{ mouseover: enableDetails, mouseout: disableDetails }"> Mouse over me </div> <div bind-visible="detailsEnabled"> Details </div> </div> //.js片段 this.detailsEnabled = justep.Bind.observable(false); enableDetails=function () { this.detailsEnabled.set(true); }; this.disableDetails=function () { this.detailsEnabled.set(false); } [...]

WeX5数据绑定:if绑定和ifnot绑定

if绑定 if绑定应用在页面元素中,并通过表达式判断是否为元素添加子元素的绑定。if绑定在功能上非常像visible绑定,但在实现上却有很大的不同。visible绑定是为元素添加css样式来控制元素是否显示,if绑定是控制元素的字元素,如果表达式为true,则为元素添加子元素,否则清空子元素。 示例代码: //.W片段 <label> <input type="checkbox" bind-checked="displayMessage" /> Display message </label> <div bind-if="displayMessage">Here is a message. Astonishing.</div> //.js片段 displayMessage=justep.Bind.observable(false); 当displayMessage为false的时候,div将会被清空;如果为true的时候,div里面的内容才会被添加到dom中显示。 ifnot绑定 ifnot绑定与if的功能相反,当表达式为true的时候,元素的内容会被清空,如果为false的时候,元素的内容会被添加到DOM中。 我们把上面的示例代码改成ifnot绑定: //.W片段 <label> <input type="checkbox" bind-checked="displayMessage" /> 隐藏消息 </label> [...]

App打包常见报错

前言 APP打包执行过程中,如未成功生成APP包,会在执行窗口出现如下图的报错信息,需要从最底端往上查看错误信息。 如果是使用打包代理服务打iOS App包,则需查看“代理服务日志”。 如果是打Android App包,则只查看“日志”。 如果是MAC版,则不区分“日志”和“代理服务日志”,直接查看当前执行窗口的报错信息即可。 查看时重点关注出现【BUILD FAILED】【security】【ERROR】字样前后的相关信息。 您可先对照下面的【报错信息关键词索引】和【常见报错详解】定位错误原因,如没有匹配的错误内容,请粘贴报错日志,在论坛中发贴进行咨询! 如果是打Android App包,直接粘贴上图“日志”中的信息到贴子中,一定要把日志内容粘贴完整。 如果是使用打包代理服务打iOS App包,则在APP应用文件夹中找到报错日志上传到贴子中。打包代理服务报错日志的路径:modelNative外卖(APP应用名称)logbuild.log 报错信息关键词索引 请粘贴以下报错信息关键词在自己的报错日志中进行比对,找到匹配的信息再对应报错情况进行查看,以便您快速解决问题! 报错信息关键词 可匹配的报错情况  Password verification failed  Android打包报错情况一  java.io.DataInputStream.readInt  Android打包报错情况二  sun.security.provider.JavaKeyStore.engineLoad  Android打包报错情况二  buildsrcplatformsandroidcordovabuild.bat--debug  Android打包报错情况三  X5.java:20: 错误: 需要';'  Android打包报错情况四  [javac] package [...]

WeX5数据绑定:value绑定

value绑定将ViewModel的参数绑定在form元素中,当form元素与ViewModel的属性建立关联之后,form元素的改变将会直接修改ViewModel的数据。 示例代码: //.W片段 <p>Login name: <input bind-value="userName" /></p> <p>Password: <input type="password" bind-value="userPassword" /></p> //.js片段 //初始化空白块 this.userName=justep.Bind.observable(""); this.userPassword=justep.Bind.observable("abc"); 设置更新ViewModel的时间 在使用value绑定的时候,我们经常要将value绑定在input、textarea中。在默认情况下,当我们的input标签失去焦点的时候,才会触发ViewModel的改变。我们可以通过valueUpdate属性来控制何时来更新ViewModel。 input:这种事件需要现代浏览器的支持(IE9+),当input、textarea输入时改变ViewModel。如果不考虑浏览器兼容问题,这种方式将是最好的。 keyup:放开按键的时候改变ViewModel。 keypress:按下按键的时候改变ViewModel afterkeydown:通过keydown事件来处理同步,算是一种比较好的同步方式。 示例代码: //.W片段 <p>Your value: <input bind-value="someValue, valueUpdate: 'input'" /></p> [...]

WeX5数据绑定:enable和disable绑定

enable绑定用来设置form中的元素是否可用,例如button、input、select等。当绑定的参数为true时元素可用。 示例代码: //.W片段 <p> <input type='checkbox' bind-checked="hasCellphone" /> I have a cellphone </p> <p> Your cellphone number: <input type='text' bind-value="cellphoneNumber, enable: hasCellphone" /> </p> //.js片段 hasCellphone=justep.Bind.observable(false); cellphoneNumber=""; disable绑定 disable绑定的功能与enable功能相反。 disable绑定用来设置form中的元素是否可用,例如button、input、select等。当绑定的参数为true时元素不可用。 本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5! 阅读其他app [...]

WeX5数据绑定:submit绑定

submit绑定只能用在form元素中,当form提交的时候被触发,并且默认阻止form的提交。因此我们通常在submit的处理函数中以ajax的方式提交form表单。 示例代码: //.W片段 <form bind-submit="doSomething"> ... form contents go here ... <button type="submit">Submit</button> </form> //js片段 doSomething=function (formElement) { // ... now do something } 为啥不直接为提交按钮添加单击事件? 另外一种通过js提交form的方法是为提交按钮添加click绑定,但是这只能作为另外一种途径,而不能代替submit绑定。submit绑定除了可以完成提交之外,还可以触发客户端的验证等。 本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5! 阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443