я следующая модель в моей backbone.js-Может кто-нибудь мне помочь?
var Book = Backbone.Model.extend({
defaults: {
id: 0,
title: 'Book',
price: 100,
quantity: 0
}
});
с коллекцией, как,
var BookList = Backbone.Collection.extend({
model: Book,
url: function() {
return 'Handler.ashx'
}
});
Используя collection.fetch() метод в этой магистрали, я могу получить список книг из базы данных, используя следующий handler.ashx
<%@ WebHandler Language="VB" Class="Handler" %>
Imports System
Imports System.Web
Imports System.Web.Script.Serialization
Imports System.Data.OleDb
Imports System.Data
Imports MySql.Data.MySqlClient
Public Class Handler : Implements IHttpHandler
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim detail As List(Of MyBookList) = GetBookDetail()
If detail.Count > 0 Then
context.Response.ContentType = "application/json"
Dim json As String = New JavaScriptSerializer().Serialize(detail)
context.Response.Write(json)
Else
context.Response.StatusCode = 404
End If
End Sub
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
Protected Function GetBookDetail() As List(Of MyBookList)
Dim ConnectionString As String = ConfigurationManager.ConnectionStrings("con").ConnectionString
Dim sqlConn As New MySqlConnection(ConnectionString)
Dim sqlCommand As New MySqlCommand
sqlCommand.Connection = sqlConn
Dim dReader As MySqlDataReader
Dim dtExcelRecords As New DataTable()
Dim ds As New DataSet()
sqlConn.Open()
sqlCommand.CommandText = "SELECT * FROM booklist "
sqlCommand.CommandType = CommandType.Text
dReader = sqlCommand.ExecuteReader()
Dim book As New List(Of MyBookList)
If dReader.HasRows Then
While dReader.Read()
Dim bookObject As New MyBookList
bookObject.title = dReader(0)
bookObject.price = dReader(1)
bookObject.id = dReader(2)
bookObject.quantity = dReader(3)
book.Add(bookObject)
End While
End If
Return book
End Function
End Class
Я хочу знать, какой код должен быть добавлен в Backbone.js и обработчик для обновления конкретной модели в Booklist collection.I имеют Фолля за счет экономии метода trigered когда кнопка сохранения нажата ..
updateBookTitle: function() {
var a = $('.title').val();
this.model.set({ title: a });
this.model.save();
},
как обработчик URL должен быть изменен, чтобы опубликовать модель Id при сохранении?
Вы не можете сохранить модель через коллекцию, а через саму модель. Вы пытались добавить urlRoot к своей модели? См. Также http://backbonejs.org/#Model-save –
Нужно ли использовать функцию для возврата URL-адреса коллекции? Он просто возвращает строку? Модель по умолчанию использует URL-адрес коллекции плюс идентификатор модели. –
Я видел метод сохранения, после вызова запроса на сохранение будет отправлен сервер с идентификатором модели, добавленным в url и его атрибутами, я хочу знать, как получить эти атрибуты в моем обработчике для обновления базы данных. –