- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用knockoutjs 编写rails3 crud View 。不知何故,我得到的行为与教程完全不同,如果您能给我一些提示,我将不胜感激......
我的代码更多的是对 loading and saving data tutorial 的复制。 。我从服务器加载数据,什么都不做,保存, Controller 获取额外的“空”对象,该对象以某种方式被持久化。然而,对现有数据的更改永远不会发生,也不会被删除。
我可以显示代码吗:
%ul#folders{'data-bind' => 'foreach: folders, visible: folders().length > 0'}
%li
%span{'data-bind' => 'text: id'}
%span{'data-bind' => 'text: name'}
%span{'data-bind' => 'text: description, visible: description'}
%a{'data-bind' => 'click: $parent.removeFolder'}Excluir
%button{'data-bind' => 'click: save'}Salvar
%form{'data-bind' => 'submit: addFolder'}
Add folder:
%input{'data-bind' => 'value: newFolderName', 'placeholder'=>"Nome"}
%button{type: "submit"}Adicionar
=content_for :script do
:javascript
function Folder(data) {
data = data || {id: 0, name: "", description: ""};
this.id = data.id;
this.name = ko.observable(data.name);
this.description = ko.observable(data.description);
}
function FolderListViewModel() {
var self = this;
self.folders = ko.observableArray([]);
self.newFolderName = ko.observable();
$.getJSON("/folders", function(allData) {
var mappedFolders = $.map(allData, function(item) {
return new Folder(item);
});
self.folders(mappedFolders);
});
self.addFolder = function() {
self.folders.push(new Folder({name: self.newFolderName()}));
self.newFolderName("");
};
self.removeFolder = function(folder) {
self.folders.remove(folder);
};
self.save = function() {
console.log(self.folders());
$.ajax("/folders", {
data: ko.toJSON({folders: self.folders}),
type: "post",
contentType: "application/json",
success: function(result) {
return console.log(result);
}
});
};
}
$(function(){
ko.applyBindings(new FolderListViewModel());
});
保存(无论是否有更改都是独立的)总是会产生类似的请求:
Started POST "/folders" for 127.0.0.1 at 2012-01-04 22:57:40 +0100
Processing by FoldersController#create as */*
Parameters: {"folders"=>[{"id"=>2, "name"=>"dim sum", "description"=>"ist warm!"}, {"id"=>3, "name"=>"Sushi", "description"=>"roh und kalt"}, {"id"=>1, "name"=>"Spagetti", "description"=>"Carbonara"}, {"id"=>10, "name"=>"Wiener", "description"=>"vom Kalb"}, {"id"=>11, "name"=>"Feijão", "description"=>""}],
"folder"=>{}} <== LOOK HERE
Folder Load (0.3ms) SELECT "folders".* FROM "folders" ORDER BY "folders"."row_order"
(0.1ms) BEGIN
Folder Load (0.2ms) SELECT id, row_order FROM "folders" ORDER BY "folders"."row_order" DESC LIMIT 1
Folder Load (0.2ms) SELECT id, row_order FROM "folders" WHERE "folders"."row_order" = 8388592 LIMIT 1
SQL (0.4ms) INSERT INTO "folders" ("created_at", "description", "name", "row_order", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["created_at", Wed, 04 Jan 2012 21:57:40 UTC +00:00], ["description", nil], ["name", nil], ["row_order", 8388592], ["updated_at", Wed, 04 Jan 2012 21:57:40 UTC +00:00]]
(0.5ms) COMMIT
Redirected to http://0.0.0.0:3000/folders/21
Completed 302 Found in 54ms
此外,删除的对象仅从数组中删除,我想知道 Rails 应该如何弄清楚,它应该将它们从对象存储中删除...一切都只是一个帖子...这对我来说看起来都是错误的。我的错误是什么?
两个奖励问题:我不喜欢用这些构造函数来填充我的全局 js 命名空间,但如果我尝试将它们隐藏在匿名函数中,似乎 ko 再也找不到它们了。这个问题可以补救吗?
我怎样才能在全局范围内告诉rails,停止将我重定向到json请求上的html操作(无论如何这有多愚蠢)并且只向我发送一条ok消息或错误消息?
最佳答案
对于全局变量,您可以通过为它们创建命名空间和/或将此页面的代码包装在代 TableView 模型的函数/对象中来解决这个问题。例如:
var 我=我的|| {};//你的命名空间。可能会在整个应用程序的一个地方定义它。
然后您可以像平常一样定义 View 模型,甚至将其包装在自调用函数中(如下所示)。我强烈推荐 View 模型方法,因此页面的所有行为都卡在一个对象上。
(function (my, ko) {
"use strict";
my.viewmodel = {
firstName: ko.observable(),
lastName: ko.observable()
};
}(my, ko));
关于javascript - knockout : Why is there an empty object sent along?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8735004/
我遵循了一本名为“Sitepoint Full Stack Javascript with MEAN”的书中的教程,我刚刚完成了第 6 章,应该已经创建了一个带有“数据库”的“服务器”。数据库只不过是
在 Jquery 中,我创建两个数组,一个嵌入另一个数组,就像这样...... arrayOne = [{name:'a',value:1}, {name:'b',value:2}] var arra
这个问题在这里已经有了答案: What is the explanation for these bizarre JavaScript behaviours mentioned in the 'Wa
我被放在别人的代码上,有一个类用作其他组件的基础。当我尝试 ng serve --aot(或 build --prod)时,我得到以下信息。 @Component({ ...,
我正在测试一些代码,并使用数据创建了一个 json 文件。 问题是我在警报中收到“[object Object],[object Object]”。没有数据。 我做错了什么? 这是代码:
我想打印 [object Object],[object Object] 以明智地 "[[{ 'x': '1', 'y': '0' }, { 'x': '2', 'y': '1' }]]"; 在 ja
我有一个功能 View ,我正在尝试以特殊格式的方式输出。但我无法让列表功能正常工作。 我得到的唯一返回是[object Object][object Object] [object Object]
在使用优秀的 Sim.js 和 Three.js 库处理 WebGL 项目时,我偶然发现了下一个问题: 一路走来,它使用了 THREE.Ray 的下一个构造函数: var ray = new THRE
我正在使用 Material UI 进行多重选择。这是我的代码。 {listStates.map(col => (
我的代码使用ajax: $("#keyword").keyup(function() { var keyword = $("#keyword").val(); if (keyword.
我遇到了下一个错误,无法理解如何解决它。 Can't resolve all parameters for AuthenticationService: ([object Object], ?, [o
我正在尝试创建一个显示动态复选框的表单,至少应选中其中一个才能继续。我还需要获取一组选中的复选框。 这是组件的代码: import { Component, OnInit } from '@angul
我正在开发 NodeJs 应用程序,它是博客应用程序。我使用了快速验证器,我尝试在 UI 端使用快速闪存消息将帖子保存在数据库中之前使用闪存消息验证数据,我成功地将数据保存在数据库中,但在提交表单后消
我知道有些人问了同样的问题并得到了解答。我已经查看了所有这些,但仍然无法解决我的问题。我有一个 jquery snipet,它将值发送到处理程序,处理程序处理来自 JS 的值并将数据作为 JSON 数
我继承了一个非常草率的项目,我的任务是解释为什么它不好。我注意到他们在整个代码中都进行了这样的比较 (IQueryable).FirstOrDefault(x => x.Facility == fac
我只是在删除数组中的对象时偶然发现了这一点。 代码如下: friends = []; friends.push( { a: 'Nexus', b: 'Muffi
这两个代码片段有什么区别: object = nil; [object release] 对比 [object release]; object = nil; 哪个是最佳实践? 最佳答案 object
我应该为其他人将从中继承的第一个父对象传递哪个参数,哪个参数更有效 Object.create(Object.prototype) Object.create(Object) Object.creat
我在不同的对象上安排不同的选择器 [self performSelector:@selector(doSmth) withObject:objectA afterDelay:1]; [self per
NSLog(@"%p", &object); 和 NSLog(@"%p", object); 有什么区别? 两者似乎都打印出一个内存地址,但我不确定哪个是对象的实际内存地址。 最佳答案 这就是我喜欢的
我是一名优秀的程序员,十分优秀!