小编Kin*_*n2k的帖子

如何在ember.js中的组件中获取存储

我是如何在一个组件内部处理商店的?我正在尝试创建一个从商店返回结果的自动完成组件.

App.AutoCompleteComponent = Ember.Component.extend({

    //-------------------------------------------
    // Ember Properites
    //-------------------------------------------
    content: Ember.ArrayController.create(),

    //-------------------------------------------
    // Instance Properties
    //-------------------------------------------
    queryText: "",

    componentItemSelected: null,

    //-------------------------------------------
    // Observers
    //-------------------------------------------
    queryTextChanged: function () {
        this.updateContent(this.get("queryText"));
    }.observes("queryText"),

    //-------------------------------------------
    // Instance Methods
    //-------------------------------------------
    selectItem: function (item) {
        this.set("componentItemSelected", item);
    },

    updateContent: function (queryText) {

        if (queryText.length <= 5) {

            console.log('not greater than 5 chars');
            return;
        }

        this.get("content").setObjects([]);

        var items = App.Company.find();

        this.get("content").setObjects(items);
    }
});
Run Code Online (Sandbox Code Playgroud)

这是我的公司模特

App.Company = DS.Model.extend({

  name: DS.attr('string'),

  created_at: DS.attr('date'),

  updated_at: DS.attr('date'),

  people: DS.hasMany('person')

});
Run Code Online (Sandbox Code Playgroud)

我试过了: …

javascript nullreferenceexception ember.js

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

Ember数据:覆盖保存方法

你好Ember Data World,

我一直在研究自定义适配器,试图弄清楚如何覆盖save方法.

根据我的理解,似乎你需要做这样的事情:

DS.RESTAdapter.extend({ 
   save: function() { return this._super();}
})
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用以下方法调用模型对象上的保存操作时:

model.save()
Run Code Online (Sandbox Code Playgroud)

商店直接调用,而不是我的适配器自定义代码.

有没有人试图这样做?

我可以在同一个适配器中使用以下代码调用find方法

findQuery: function(store, type, query) {
        //debugger;
        console.log("findQuery: Custom adapter called!");

            return this.ajax(this.buildURL(type.typeKey), 'GET', { data: query });
}
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

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

Ember Data如何管理大量记录?

我一直在使用Ember Data,我正在尝试理解一些概念.我有一个非常繁重的数据密集型应用程序,我的后端有端点返回大量记录.

所以,基本上我有Route的东西this.store.findAll('places')可以返回数以千计的地方,每个地方有几个文本密集的字段,如servicesdescription.这只是其中一项资源,还有一些资源可以处理这些数据.

我主要担心的是应用程序遇到某种限制或变得没有响应.所以我的问题是:Ember Data如何管理大量记录?有没有最好的做法来处理这种情况?

ember.js ember-data

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

Ember.js与外部车把模板

所以,我有点新鲜,Ember.js自从我坚持这个以来已经有几个小时了.我正在玩这个bloggr客户端,我想要完成的是handlebars从外部文件加载这些模板.

当用户单击面板中的about页面时,应该呈现"about"模板.这里是简短的代码,所以你不必挖掘那么多(我相信对于有经验的用户来说这很容易)

里面的模板.html如示例中所示

<script type="text/x-handlebars" id="about">
<div class='about'>
  <p>Some text to be shown when users click ABOUT.</p>
</div>
Run Code Online (Sandbox Code Playgroud)

现在我所做的就是将x-handlebar代码从html页面中取出并放置(没有<script type...>),然后将其放入hbs/about.hbs

现在,在html页面中我做了类似的事情.

$.ajax({
    url: 'hbs/about.hbs',         
    async: false,
    success: function (resp) {
      App.About = Ember.View.extend({
        template: Ember.Handlebars.compile(resp),
      });
    }         
  });
Run Code Online (Sandbox Code Playgroud)

ajax的结果保存.hbs页面的内容,然后我必须编译它Ember才能呈现它,对吧?认为这就是我所做的.但就我而言,这就是我的意思.我做得对吗?下一步是什么?我相信我必须将ajax调用的内容附加到body左右.

提前谢谢,搜索完SO后我仍然无法让它运行.

javascript ajax handlebars.js ember.js

6
推荐指数
1
解决办法
4298
查看次数

路由中的Ember"Params未定义"

我是新手,我正在构建一个非常简单的应用程序.我可以通过点击链接到标签生成的链接,从我的育种者索引页面(/育种者)导航到我的育种者展示页面(/ breeders /:breeder_id).但是,如果我手动导航到breeders/1或任何其他breeders.show路由,我会收到以下错误:

Error while loading route: ReferenceError: params is not defined
at Catapp.BreedersShowRoute.Ember.Route.extend.model
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚我做了什么导致了这一点.

这就是我认为的相关代码:

    //router.js
    Catapp.Router.map(function() {
        this.resource('breeders', function() {
            this.route('new');
            this.route('show', {path: '/:breeder_id'});
        });
    });

    Catapp.IndexRoute = Ember.Route.extend({
        redirect: function(){
            this.transitionTo('breeders.index');
        }
    });

    Catapp.BreedersIndexRoute = Ember.Route.extend({
        model: function(){
            return this.store.find('breeder');
        }
    });

    Catapp.BreedersShowRoute = Ember.Route.extend({
        model: function(){
            return this.store.find('breeder', params.breeder_id);
        }
    });
Run Code Online (Sandbox Code Playgroud)

.

// breeders_controller.js
Catapp.BreedersController = Ember.ArrayController.extend({
    sortProperties: ['id']
});
Run Code Online (Sandbox Code Playgroud)

javascript function ember.js ember-data

6
推荐指数
1
解决办法
3503
查看次数

如何使用Session.Query设置Nhibernate LINQ命令超时

有人知道设置UnderlyingCriteria何时使用的方法Session.Query

我正在尝试为一个特定查询设置更严格的命令超时(或查询超时),我试图避免在会话中的连接或其他查询上添加该约束.

我发现在旧QueryOver功能中你可以使用这样的东西

// QueryOver returns a IQueryOver<T,T> an nHibernate class 
// with access to UnderlyingCriteria

var query = Session.QueryOver<Puppy>();
query.UnderlyingCriteria.SetTimeout(120); 
Run Code Online (Sandbox Code Playgroud)

问题在于它是旧的,有缺陷的,只是有一大堆功能问题.

使用Query返回IQueryable<T>

 var query = (from c in Session.Query<Puppy>());
Run Code Online (Sandbox Code Playgroud)

IQueryable 是一个MS类,没有明显的命令超时访问权限等.

另一种选择是以某种方式为所有命令设置会话命令超时,此时,然后恢复为默认值,但我没有看到任何公共机制来执行此操作,除了先设置命令超时并将其保留,比较如何为NHibernate LINQ语句设置超时

c# linq nhibernate timeout command-timeout

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

如何在使用ember枚举手柄中的数组时按标题显示一个简单的组?

我有一组ember对象,它们共享一个共同的属性,如"group"

var first = {name: 'first', group: 'A'}
var middle = {name: 'middle', group: 'B'}
var last = {name: 'last', group: 'A'}

{{#each person in controller}}
{{person.name}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)

如何为每个组仅将组名称显示为"标题"一次?我正在做类似下面的事情(创建一个带有组键的自定义"对象"和值的"自定义数组" - 但问题是我不能有嵌套的计算属性所以这似乎不太理想长期)

groupby: function(content) {
  var all = Ember.A([]);
  content.map(function(apt) {
    var employee = apt.get('employee').get('name');
    var match = all.filter(function(group) {
      if (group.name === employee) {
        return group;
      }
    });
    if (match.length > 0) {
      match[0].appointments.pushObject(apt);
    }else{
      var group = Ember.Object.create({'name': employee, appointments: [apt]});
      all.pushObject(group);
    }
  });
  return all;
}.property()
Run Code Online (Sandbox Code Playgroud)

ember.js

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

如何使用broccoli.js获取一个简单的文件树来连接

我试图让我的头围绕broccoli.js,但我遇到了一个错误.如果你查看我的GitHub仓库,你会看到我有一个看起来像这样的brocfile.js:

brocfile.js

var compileES6 = require('broccoli-es6-concatenator')
var pickFiles = require('broccoli-static-compiler');
var mergeTrees = require('broccoli-merge-trees')


var app = 'app'
app = pickFiles(app,{
    srcDir: '/',
    destDir: 'app-kit'
})

var appJS = compileES6(app, {
    inputFiles: ['/app-kit/**/*.js'],
    outputFile: '/dist/app.js'
})

module.exports = mergeTrees([appJS]);
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Built with error:
Error: ENOENT, no such file or directory 'tmp/static_compiler-tmp_dest_dir-JjclDVEm.tmp/undefined'
    at Object.fs.statSync (fs.js:684:18)
    at addLegacyFile (/Users/cully/Sites/ember-todo/node_modules/broccoli-es6-concatenator/index.js:130:44)
    at /Users/cully/Sites/ember-todo/node_modules/broccoli-es6-concatenator/index.js:47:5
    at invokeCallback (/Users/cully/Sites/ember-todo/node_modules/broccoli/node_modules/rsvp/dist/commonjs/rsvp/promise.js:228:21)
    at publish (/Users/cully/Sites/ember-todo/node_modules/broccoli/node_modules/rsvp/dist/commonjs/rsvp/promise.js:176:9)
    at publishFulfillment (/Users/cully/Sites/ember-todo/node_modules/broccoli/node_modules/rsvp/dist/commonjs/rsvp/promise.js:312:5)
    at flush (/Users/cully/Sites/ember-todo/node_modules/broccoli/node_modules/rsvp/dist/commonjs/rsvp/asap.js:41:9)
    at process._tickCallback (node.js:415:13)
    at Function.Module.runMain …
Run Code Online (Sandbox Code Playgroud)

javascript node.js npm

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

Ember js在控制器内使用把手帮手?

我有一个帮助方法,将数字映射到文本 -

Ember.Handlebars.helper('getStatusText', function (value, options) {
    switch(value) {
        case 1: return "Fresh";
            break;
        case 2: return "Callback";
            break;
        default: return "Unable to get Status";
    }
});
Run Code Online (Sandbox Code Playgroud)

我可以通过使用在视图中使用帮助器 {{getStatusText 1}}

但是如何在ObjectController内的动作中使用帮助器呢?

Test.DealController = Ember.ObjectController.extend({

    selectedStatusType: null,
    statusList: ["Fresh","Callback"],

    actions: {
        updateStatus: function(deal) {
// How do I call the handlebars helper here ?
            console.log({{getStatusText 1}});
        }
    },

});
Run Code Online (Sandbox Code Playgroud)

这显然不起作用.

还有什么其他方法?

为了更好地理解,这里是jsbin

javascript handlebars.js ember.js

5
推荐指数
2
解决办法
7773
查看次数

参数值[0]与预期类型[java.lang.Integer]不匹配

有趣的问题,我正在传递intin并且它抱怨它不匹配类型:

org.springframework.dao.InvalidDataAccessApiUsageException: Parameter value [0] did not match expected type [java.lang.Integer]

@Procedure(procedureName = "dbo.do_cool_stuff_to_client")
void coolClientStuff(int clientId);
Run Code Online (Sandbox Code Playgroud)

它被称为如此:

public void someOtherMethod(int clientId){
  clientRepository.coolClientStuff(clientId);
}
Run Code Online (Sandbox Code Playgroud)

java spring stored-procedures jpa hql

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