У меня есть контроллер для JQ-участка, как показано ниже:Асинхронная загрузка взглядов/обработки обещаний AngularJS просмотров с JQ-участка
app.controller('chartCtrl', ['$scope', 'Model1', 'Model2', function($scope, Model1, Model2) {
var model1 = new Model1();
model1.firstAsyncMethod(function() {
var model2 = new Model2();
model2.secondAsyncMethod(function() {
$scope.data = [ [1,6.5],[2,6.5],[3,7],[4,8],[5,7.5],[6,7],[7,6.8],[8,7],[9,7.2],[10,7],[11,6.8],[12,7] ];
})
});
}]);
Как вы можете видеть, я первый вызывающей firstAsyncMethod()
и перевалы обратный вызов. Этот обратный вызов делает другой асинхронный вызов secondAsyncMethod()
. Это только в конце, когда это secondAsyncMethod()
разрешает мой $scope.data
становится доступным.
В то же время, мой взгляд на этот контроллер выглядит следующим образом:
<div ng-controller="chartCtrl">
<div ui-jq="plot" ui-options="
[
{ data: {{data}}}
]
">
</div>
</div>
Теперь проблема когда ui-options
пытается загрузить data
на странице загрузки, контроллер не вернулся data
еще. Это порождает ошибки разбора в угловом JS.
Я попытался определить параметры диаграммы в контроллере после того, как второй метод асинхронизации полностью разрешен, но я все равно продолжаю получать ошибки. Как я могу это решить? Благодарю.
Откуда берутся «model1» и «model2»? –
@NexusDuck Это фабрики. Извините, я забыл показать их конструкторов. Я добавил их и обновил вопрос. – swdon