2015-10-18 11 views
-1

Я новичок в ember js. У меня есть форма &, когда пользователь попал в submit, я хочу проверить, введен ли пользовательское имя & пароль, который пользователь ввел, уже в моей модели/database.I пробовал следовать, но это не сработало. Пожалуйста, помогите мне с этим ...Получение записей в ember js

Шаблон

<h2>Welcome to my blog</h2> 

<form {{action 'exist' on="submit"}}> 

     <dl> 
     <dt>User Name:<br> {{textarea value=uName cols="20" rows="1"}}</dt> 
     <dt>Password:<br> {{textarea value=passw cols="20" rows="1"}}</dt> 
     </dl> 
     <button type="submit" class="btn btn-primary">Login</button> 
</form> 

Модель

import DS from 'ember-data'; 

export default DS.Model.extend({ 

    FirstName: DS.attr('string'), 
    UserName: DS.attr('string'), 
    Password: DS.attr('string'), 
    PermissionList: DS.attr('array') 

}); 

Маршрут

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model: function() { 
     return this.store.find('user'); 
    } 
}); 

Контроллер

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    actions: { 
     ght: function() { 
      var uName = this.get('uName'); 
      var passw = this.get('passw'); 

      if (this.store.find('user', { 
       userName: this.get('uName') 
      })) { 
       alert('Already exist'); 
      } 
     } 
    } 
}); 

// Это предупреждение показывается для каждого input.Even они не в модели

ответ

0

, как store.find() всегда возвращает обещание, которое является объект, if условия всегда истинен. То, что вы, вероятно, должны сделать вы, чтобы ждать, пока обещание разрешить и сделать проверку, как

// ... 
var uName = this.get('uName'); 
this.store.find('user', { 
    userName: uName 
}).then(function(user) { 
    if(user) { 
     alert('Already exist'); 
    } else { 

    } 
}); 
// ... 
+0

Тем не менее с той же проблемой –

+0

Какой ваш проблема? Код, который он предоставил, работает так, как он должен. Сначала вам нужно решить обещание проверить его uniquness против вашей базы данных. –

+0

Этот код должен работать. Можете ли вы добавить больше точности? Какова ценность пользователя в функции разрешенных обещаний? – greenymaster69

0

Эта форма похожа на форму входа. Если мое предположение верно, вы не показываете эту форму, если пользователь уже вошел в систему (в этом случае сессия будет иметь информацию о пользователе). Если пользователь не войдет в систему, вам нужно будет отобразить форму. Я не думаю, что вам нужно будет искать пользователя в магазине. Просто отправьте/сохраните пользователя на сервер и найдите логику пользователя на стороне сервера и отправьте ответ соответствующим образом. На стороне ember вы можете показать существующий результат, обратившись с последними обещаниями.

Если ваш вариант использования отличается, вы можете использовать запрос (для нескольких записей). и queryRecord для одной записи

Query

Копировать вставленный из документов

// GET to /persons?filter[name]=Peter 
this.store.query('person', { filter: { name: 'Peter' } }).then(function(peters) { 
    // Do something with `peters` 
}); 


// GET to /persons?filter[email][email protected] 
this.store.queryRecord('person', { filter: { email: '[email protected]' } }).then(function(tomster) { 
    // do something with `tomster` 
}); 

// на мобильном телефоне будет добавить код, если это не помогает