Угловой: 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 = [];

Если это не поможет, пожалуйста, предоставьте больше информации.

Другие вопросы по тегам