2014-01-09 3 views
2

Я надеюсь, что смогу помочь. Я пытаюсь использовать $ q в угловом приложении, которое я пытаюсь описать с помощью машинописного текста. Но я боюсь. Я попытался создать файл определения типа следующим образом:

/// <reference path="../q/Q.d.ts" /> 
/// <reference path="../angularjs/angular.d.ts" /> 

declare module breeze.core { 
    export function extendQ(rootScope: ng.IScope, q: Q.Promise<any>): any; 
    export function to$q(qPromise: Q.Promise<any>, success: any, fail: any): any; 
} 

Но Javascript код действует больше как метод расширения C# и я не знаю, как достичь такой же аффекта с машинописи. Обратите внимание, что у меня есть только базовый опыт работы с javascript, и этот бриз является совершенно новым для меня.

ответ

2

Это хорошо знать, @basarat.

Но более важно ... мы устарели to$q в пользу использования $q для обещаний на вашем приложении Breeze. Это верно. Breeze больше не зависит от Q.js (хотя это значение остается по умолчанию).

Вместо этого используйте Breeze.Angular.Q. Он доступен как NuGet package или непосредственно from GitHub. См. Breeze Labs documentation for it.

Вы просто настраиваете Breeze для использования экземпляра $q для вашего модуля приложения, а затем записываете свой код бриза против $q обещаний. Например,

var promise = entityManager 
    .executeQuery(query) 
    .then(successCallback) 
    .catch(failCallback) 
    .finally(finalCallback); 
+1

Спасибо за быстрый ответ. Я следил за вашими инструкциями, и результат был успешным! О, и это был легкий ветерок. Еще раз спасибо. Продолжайте в том же духе. –

+0

+1 для "это был бриз" :-) –

3

$ д определяется в angularjs определений типа here

Вы не должны ссылаться на q.d.ts

+1

Спасибо, я также принял это во внимание. Cheers –

+0

Теперь это строка '999' только FYI –

+0

Прохладный. Я превратил его в стабильную ссылку (git sha) сейчас;) – basarat

Смежные вопросы