Угловой: Push элемент в список не обновляет вид
Когда я помещаю элемент в массив, представление не обновляет список.
Таблица:
<tbody id="productRows">
<tr data-ng-repeat="product in products | filter: search">
<td>{{ product.Code}}</td>
<td colspan="8">{{ product.Name}}</td>
</tr>
</tbody>
форма:
<form data-ng-submit="submitProduct()">
Code:
<br />
<input type="text" required data-ng-model="product.Code"/>
<br />
<br />
Naam:
<br />
<input type="text" required data-ng-model="product.Name"/>
<br />
<input type="submit" value="Opslaan" />
</form>
представить продукт в контроллере:
$scope.submitProduct = function () {
console.log('before: ' + $scope.products.length);
$scope.products.push({Code: $scope.product.Code, Name: $scope.product.Name});
console.log('after:' + $scope.products.length);
console.log($scope.products);
$scope.showOverlay = false;
};
Как видите, я записываю общее количество элементов в массиве, и он ведет себя так, как я и ожидал. Единственное, что не делает то, что я ожидаю, это содержимое моей таблицы, которое не показывает новое значение.
Что мне нужно сделать, чтобы новая строка отображалась в таблице?
2 ответа
Спасибо за ответ и комментарии. Проблема была в другом месте. В моем routeProvider
Я объявил контроллер. У меня тоже был ng-controller
директива в моем div. Так что мой контроллер выполняется дважды. Когда я удалил ng-controller
директива, все просто работало как надо:)
Я не вижу остальной ваш код, но убедитесь, что $scope.products
определяется в вашем контроллере.
Смотрите этот пример.
Единственное добавление, которое я сделал к предоставленному вами коду:
$scope.products = [];
Если это не поможет, пожалуйста, предоставьте больше информации.