Внутри Ngrepeat директива
Привет,
Я хочу иметь общий контроль за отбором поставщиков. Я попытался получить поставщиков в изолированном объеме. Метод вызвал и обновил массив, но ng-repeat не обновился. Поэтому я попытался пройти через поставщиков в качестве источника данных. Опять же, ng-repeat не обновляется.
Конечно, это возможно. Что я упускаю?
Текущая Директива:
angular.module('cpDirectives', []) .directive('chooseASupplier', function () { return { restrict: 'EA', scope: { callback: '&', dataSource : '=' }, templateUrl: "/Resources/htmlTemplates/ChooseASupplier.html" }; });
и шаблон:
<div class="choose-supplier"> <h1> Choose a Supplier </h1> <div class="supplierIconClass" ng-repeat="supplier in suppliers" ng-click="callback(supplier.Id)"> <img ng-src="~/Resources/images/supplier/{{supplier.EalId}}" ng-alt="{{supplier.Name}}" ng-title="{{supplier.Name}}"/> </div> </div>
Использование:
<script> masterApp.controller('uploaderController',['$scope',function($scope) { $scope.suppliers = []; $scope.$parent.rateHub.run("getSuppliersSafe") .then(function (response) { if (response.error) { if (response.hasOwnProperty("errorDetail")) { console.log(response.errorDetail) } $scope.error(response.error); } else { $scope.suppliers = response.data; } }); $scope.supplierChoice = function(supplierId) { } }]) </script> <style> .wizard-panel { width: 98%; height: 98%; margin: 1%; padding: 1%; background-color: #eeeeee; background-color: rgba(238,238,238,.4 </style> <div ng-controller="uploaderController"> <div class="wizard-panel"> <div class="wizard-page page-1"> <choose-a-supplier callback="supplierChoice(supplierId)" dataSource="suppliers"></choose-a-supplier> </div> </div> </div>
Что я уже пробовал:
Я попробовал с изолированным прицелом, но все равно ничего:
angular.module('cpDirectives', []) .directive('chooseASupplier', function () { var controller = ['$scope', function ($scope) { $scope.suppliers = []; $scope.$parent.rateHub.run("getSuppliersSafe") .then(function(response) { if (response.error) { if (response.hasOwnProperty("errorDetail")) { console.log(response.errorDetail) } $scope.error(response.error); } else { $scope.suppliers = response.data; } }); }]; return { restrict: 'EA', //Default for 1.3+ scope: { callback: '&' }, controller: controller, templateUrl: "/Resources/htmlTemplates/ChooseASupplier.html" }; });
<div class="choose-supplier"> <h1> Choose a Supplier </h1> <div class="supplierIconClass" ng-repeat="supplier in vm.suppliers" ng-click="callback(supplier.Id)"> <img ng-src="~/Resources/images/supplier/{{supplier.EalId}}" ng-alt="{{supplier.Name}}" ng-title="{{supplier.Name}}"/> </div> </div>