当数据链接到一个表单导致我重新质疑究竟是什么数据绑定时,我遇到奇怪的行为?
基本上我有一个表单,可以创建新公司并更新它们.实际的创建/更新是通过ajax完成的,这就是我为同时使用相同表单的原因.在我必须创建公司的情况下,一切都按照我的预期运作.但是,当我必须更新公司时,事情并不像我期望的那样有效.请查看以下代码.
这是我的示例表单HTML:
<div id="result"></div>
<script type="text/x-jsrender" id="CompanyFormTemplate">
<form>
<input type="text" data-link="Company.Name" />
</form>
</script>
Run Code Online (Sandbox Code Playgroud)
这是我的Javascript代码:
var app = new CompanyFormContext();
function CompanyFormContext() {
this.Company = {
Name: ''
};
this.setCompany = function (company) {
if (company) {
$.observable(this).setProperty('Company', company);
}
};
};
$(function () {
initPage();
...
if (...) {
// we need to update company information
app.setCompany({ Name: 'Company ABC' });
}
});
function initPage() {
var template = $.templates('#CompanyFormTemplate');
template.link("#result", app);
}
Run Code Online (Sandbox Code Playgroud)
它不是显示"公司ABC"的表单输入,而是空的.但是,如果我在其中输入任何内容,那么Company.Name值确实会发生变化!但是,虽然我希望数据输入绑定到我的Company对象的Name属性,但我也希望它知道对(父)Company对象所做的任何更改,并相应地更新它绑定到它的Name属性的数据.
所以我的问题是我应该如何改变我编写这段代码的方式,以便我可以在根对象和属性上实现数据绑定?
我正在寻求具有为生产力网络应用程序创建键盘快捷键的经验的其他人的建议.
目前,我正在将所有命令链接到keyup事件,但是我已阅读SO上的帖子,似乎建议我将它们链接到keypress事件.我选择了键,因为我希望命令只触发一次而不是多次,这可能发生在按键的情况下.但是我不确定是否还有其他我遗失的东西.
那么您建议哪个事件用于创建Web应用程序的命令快捷方式?Keyup或Keypress?
我在我的一个名为"Database"的目录中有一个名为".gitignore"的子目录,我想让git忽略,所以我将它列在我的.gitingore文件中.
的.gitignore:
[Bb]in/
[Dd]ebug/
[Rr]elease/
.gitignore/
Run Code Online (Sandbox Code Playgroud)
当我执行像git status Database这样的命令时,我收到以下警告:
warning: unable to access 'Database/.gitignore': Permission denied
Run Code Online (Sandbox Code Playgroud)
谁能帮助我了解我能做些什么来摆脱这个警告?
PS:我验证了"数据库"和".gitingore"的文件夹权限是相同的.
PS:我在Windows 8上运行git.我认为这不重要.