小编Joe*_*l T的帖子

当我使用bootstrap datepicker时,为什么Ember.js会丢失valueBinding?

我注意到在我的应用程序中,当我使用下面的代码时,我在日期选择器小部件中给出了格式化日期,但是当我单击搜索时,控制台显示空字符串.但是,如果我删除该didInsertElement方法,我将丢失datepicker弹出窗口,但数据绑定仍然存在,控制台显示我输入的日期.

在我的车把模板中

{{view App.DateField valueBinding="controller.startDate" classNames="startDate"}}
{{view App.DateField valueBinding="controller.endDate" classNames="endDate"}}
<button {{action "search" target='controller'}}>Search</button>
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中

App.ApplicationController = Ember.ArrayController.extend({
  search: function() {
    console.log(this.get('startDate'));
    return console.log(this.get('endDate'));
  }
});

App.DateField = Ember.TextField.extend({
  didInsertElement: function() {
    return this.$().datepicker();
  }
});
Run Code Online (Sandbox Code Playgroud)

任何想法,为什么我设置时丢失了数据绑定didInsertElement?

版本: bootstrap-datepicker,

handlebars-1.0.0-rc.3
ember-1.0.0-rc.3
jQuery 1.9.1
Run Code Online (Sandbox Code Playgroud)

handlebars.js twitter-bootstrap ember.js

7
推荐指数
1
解决办法
2215
查看次数

从路由的beforeModel访问控制器

我想从一个路径上的beforeSend钩子中访问我的路由控制器,以利用promise上的暂停逻辑.

这是我目前的解决方法,能够在我的控制器上设置"category_config",这是从beforeModel中的promise获得的.

Imaging.ReferenceRoute = Ember.Route.extend(Imaging.Ajax, {
  setupController: function(controller, model) {
    controller.set('error_messages', []);
    controller.set('category_config', this.get('category_config'));
    return this._super(controller, model);
  },
  beforeModel: function(transition) {
    var categories;
    categories = this._promise("/url/foo/", "GET");
    return Ember.RSVP.all([categories]).then(((function(_this) {
      return function(response) {
        return _this.set('category_config', response[0]);
      };
    })(this)));
  },
  model: function() {
    return Imaging.Document.find();
  }
});
Run Code Online (Sandbox Code Playgroud)

万一你好奇我的_promise助手如下:

_promise: function(url, type, hash) {
  return new Ember.RSVP.Promise(function(resolve, reject) {
    hash = hash || {};
    hash.url = url;
    hash.type = type;
    hash.dataType = "json";
    hash.success = function(json) {
      return Ember.run(null, resolve, json);
    }; …
Run Code Online (Sandbox Code Playgroud)

javascript ember.js rsvp.js

5
推荐指数
1
解决办法
774
查看次数

为什么在重新排序列表时没有把手{{#each}}重新登记?

我试图根据控制器上的切换属性管理对象数组的排序显示.正因为如此我不能使用默认sortProperties可用的ArrayController.

预期的结果是,当我第一次点击"编辑"按钮时,我能够对项目进行更改,当我点击保存时,它应该重新渲染{{#each}}块以显示新的名称顺序.

这是车把上的一个小虫还是我做错了什么?

JSBin:当属性切换时,把手不会重新渲染

HTML:

<script type="text/x-handlebars">
 {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="index">
  <h4>Raw \{{sorted_list}} property</h4>
    {{sorted_list}}<br/>
  <h4>Iterated `\{{#each item in sorted_list}}` property</h4>
  <ul>
    {{#each item in sorted_list}}
      {{#if editing}}
        <li>{{input type="text" value=item.name}}</li>
      {{else}}
        {{item.name}}<br/>
      {{/if}}
    {{/each}}
  </ul>
  {{#if editing}}
    <button {{action "edit_stuff"}}>Save</button>
  {{else}}
    <button {{action "edit_stuff"}}>Edit</button>
  {{/if}}
</script>
Run Code Online (Sandbox Code Playgroud)

JS:

var App = Ember.Application.create();

App.Router.map(function() {});

App.Person = Ember.Object.extend({
  toString: function() {
    return this.name;
  }
});

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return [ …
Run Code Online (Sandbox Code Playgroud)

javascript handlebars.js ember.js

5
推荐指数
1
解决办法
529
查看次数

Django 1.5在持久保存上传文件时引发UnicodeDecodeError

当我将项目的django版本更新为1.5.x时,就会出现此问题.

我的问题是,当使用mysql作为后端并且我上传文件并尝试将该文件的块保存到另一个模型时,我得到一个UnicodeDecodeError.

在django 1.4.x中,没有抛出错误,相关模型被持久化.

要重新创建的示例项目:https: //github.com/imtapps/fileuploaderror

models.py

from django.db import models

class LongBlob(models.Field):
    def db_type(self, connection):
        return "longblob"   

class Document(models.Model):
    document = LongBlob()

class Book(models.Model):
    description = models.CharField(max_length=30)
    document = models.ForeignKey(Document, null=True)
Run Code Online (Sandbox Code Playgroud)

forms.py

from django import forms
from spikeapp.models import Document, Book

class BookForm(forms.ModelForm):
    upload_file = forms.FileField()

    def save(self, *args, **kwargs):
        self.cleaned_data['upload_file'].open()
        data = ''.join([chunk for chunk in self.cleaned_data['upload_file'].chunks()])
        self.cleaned_data['upload_file'].close()
        Document.objects.create(document=data)

    class Meta:
        model = Book
        fields = ('description',)
Run Code Online (Sandbox Code Playgroud)

views.py

from django.views.generic.edit import FormView
from spikeapp.forms import BookForm …
Run Code Online (Sandbox Code Playgroud)

python mysql django django-forms python-2.7

4
推荐指数
1
解决办法
821
查看次数