下面是填充了用户数据的filteringSelect的示例.我的目标是在显示的值上执行wilcard匹配.例如,如果用户键入'son',则下拉匹配将是"homer simpSON"和'carl calSON'.默认情况下,匹配将仅位于标签的开头.
我尝试更改dijit.byId('userselect').searchAttr,但将其设置为除字符串之外的任何内容都会导致错误的行为.
<input id="userselect">
<script type="text/javascript">
dojo.require("dijit.form.FilteringSelect");
dojo.require("dojo.data.ItemFileReadStore");
var user_data = {
"itentifier":"user_id",
"label":"label",
"items":[
{"first_name":"Waylon","last_name":"Smithers","label":"Waylon Smithers","user_id":7}
,{"first_name":"Carl","last_name":"Carlson","label":"Carl Carlson","user_id":6}
,{"first_name":"Homer","last_name":"Simpson","label":"Homer Simpson","user_id":4}
,{"first_name":"Lenny","last_name":"Leonard","label":"Lenny Leonard","user_id":5}
,{"first_name":"Montgomery","last_name":"Burns","label":"Montgomery Burns","user_id":8}
]
};
dojo.addOnLoad(function() {
var userStore = new dojo.data.ItemFileReadStore({
//url: "/user/lookup",
data: user_data
});
var filteringSelect = new dijit.form.FilteringSelect({
id: "userselect",
name: "userselect",
store: userStore,
searchAttr: 'label' //["first_name", "last_name", "oasis"]
},
"userselect");
});
</script>
Run Code Online (Sandbox Code Playgroud) 我是一位经验丰富的Flex/.NET开发人员,现在正在学习html5/javascript.过去几周我一直在玩Ext Core和ExtJS,我对是否/如何使用这些库对非基于列表的数据进行双向数据绑定感兴趣.
似乎大多数绑定支持都是针对将数据行绑定到网格.我有兴趣将UI元素绑定到不是基于列表的数据的任意POJO.
也许我只是没有找到合适的地方,但我找不到支持.
我真的很想听听人们在Ext中做了什么,或者人们推荐什么作为替代方案.
我有一个窗口,我想在顶部添加一个工具栏,以及一个用于在其余区域中加载内容的面板.不幸的是,当我添加内容面板时,工具栏会扩展到不成比例的大小.我试过硬编码大小,但这似乎不起作用.我究竟做错了什么?
在此先感谢您的回复:
// Main application entry point
Ext.onReady(function() {
var loginWin;
var mainWin;
var content;
var form = new Ext.form.FormPanel({
baseCls: 'x-plain',
labelWidth: 70,
//url:'',
defaultType: 'textfield',
items: [{
fieldLabel: ' User Name',
name: 'username',
anchor:'100%' // anchor width by percentage
},{
inputType: 'password',
fieldLabel: ' Password',
name: 'password',
anchor: '100%' // anchor width by percentage
}]
});
content = new Ext.Panel({
baseCls: 'x-plain',
layout:'fit',
anchor:'90%',
height: 500,
items: [
{
title: 'blah',
html: '<div>hello</div>'
}
]
});
var tb …Run Code Online (Sandbox Code Playgroud) 我正在通过JavaScript http://www.google.com/recaptcha/api/js/recaptcha_ajax.js加载reCAPTCHA 并使用jquery-1.5.2.min.js与本地PHP脚本进行通信,然后验证输入通过Google的recaptchalib.php并以JSON格式将数据返回给JavaScript.一切正常,但谷歌Chrome的控制台报告错误:
Uncaught TypeError: Cannot set property 'innerHTML' of null recaptcha_ajax.js:15
Recaptcha._init_builtin_theme recaptcha_ajax.js:15
Recaptcha._finish_widget recaptcha_ajax.js:19
Recaptcha.challenge_callback recaptcha_ajax.js:13
(anonymous function) challenge:12
Run Code Online (Sandbox Code Playgroud)
我想解决这个错误,但我不知道该怎么做.
我正在试图弄清楚Backbone.js是否是我当前项目的正确框架:可视化应用程序.
我有很多问题:
1)状态/路由?
由于这不是典型的RESTful应用程序,而是具有各种图表类型和这些图表设置的可视化应用程序,如何在URL中维护状态?假设我的areaChart模型有许多默认值,如下所示:
AreaChartModel = Backbone.Model.extend({
defaults: {
selectedCountries: [],
year: 1970,
stacked: false
},
initialize: function(){
[...]
}
});
Run Code Online (Sandbox Code Playgroud)
在对模型的更新中,我想序列化其中一些属性,以便我可以为特定状态添加书签:chartApp.html#!year = 1970&stacked = false等.
反之亦然,当以这种状态启动应用程序时,我如何"取消"url状态并设置模型?我可以使用Backbone的内在路由吗?
2)控制器和耦合?
看来Backbone有一个非常紧凑的视图模型耦合?这真的是我应该将我的areaChartView绑定到模型吗?
AreaChartView = Backbone.View.extend({
initialize: function(){
areaChartModel.bind("change:year", this.render);
}
});
Run Code Online (Sandbox Code Playgroud)
这通常不是控制器的作用吗?
3)延续:模型与控制器?
鉴于这种情况:
"侧栏"中的更改应触发一系列功能:
1)"应加载当前选择的新数据"
2)"基于此数据,应更新"可视化"视图中的比例"
3)"可视化视图应该呈现"
我应该在哪里放置这些函数,如何在状态稳定时触发的模型中创建事件?(即,当调用了所有函数并且是时候设置视图状态了吗?)
javascript model-view-controller javascript-framework backbone.js
我有一个主应用程序视图,标题中有一个过滤器菜单.点击后,我想在单独的新闻Feed视图中过滤内容.但我不知道如何将事件(并传递类数据)从一个视图中的点击绑定到另一个视图中的函数.
我怎么能做到这一点?
尝试使用PhoneGap创建启动应用程序.我被困在这条线上:
navigator.device.capture.captureAudio(onSuccess, onError, {limits:1, duration:5});
它在iOS上工作正常但在Android模拟器上抛出此错误:
无法读取未定义的属性"捕获"
这navigator是错误发生时的对象(注意没有device导致此错误的属性)
{
"language": "en-US",
"product": "Gecko",
"mimeTypes": {
"length": 0
},
"appVersion": "5.0 (Linux; U; Android 4.0.3; en-us; sdk Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
"plugins": {
"length": 0
},
"onLine": true,
"connection": {
"type": 0
},
"platform": "Linux armv7l",
"vendor": "Google Inc.",
"appCodeName": "Mozilla",
"geolocation": {},
"cookieEnabled": true,
"appName": "Netscape",
"productSub": "20030107",
"userAgent": "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; sdk Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 …Run Code Online (Sandbox Code Playgroud) 我陷入了不应该id在API端点返回字段的情况.我需要告诉ember使用slug/而不是字段id.
我试过了DS.RESTAdapter.map('App.Post', id: {key: 'slug'}).虽然这种方法非常适合App.Post.find("a-slug-name"),但App.Post.find()每次调用它时都会导致添加新模型.并且还指定id为null.
那我该怎么做呢
我编写了JavaScript库来使用FileSaver.js及其相关的库.但是,每当有人想要使用我的库时,我都不想总是加载FileSaver.js.而且我不想强迫他们自己加载所有各种与FileSaver相关的JavaScript库script(或者甚至加载我的一个可以做到这一点).
相反,我更喜欢的是这样的.当他们调用我的createImage函数时,它首先执行以下操作:
function createImage(image, name) {
if (typeof(saveAs) !== 'function') {
var element = document.createElement('script');
element.async = false;
element.src = 'FileSaver.js';
element.type = 'text/javascript';
(document.getElementsByTagName('head')[0]||document.body).appendChild(element);
}
// now do the saveImage code
}
Run Code Online (Sandbox Code Playgroud)
问题是,经过上述操作后,saveAs仍未定义该功能.只有在我createImage完成后才能saveAs最终定义函数.
javascript ×7
backbone.js ×2
extjs ×2
ajax ×1
android ×1
cordova ×1
data-binding ×1
dojo ×1
ember.js ×1
jquery ×1
recaptcha ×1
symfony ×1
view ×1