Добавить новые параметры списка в поле списка динамически - AngularJS

Я пытаюсь динамически добавлять новые параметры списка в список. GetItem ("newCompany") получает данные массива из локального хранилища. Это хорошо работает. Но я не могу вставить newCompany.name в массив $ scope.companies. Я пытаюсь динамически добавлять новые параметры списка «Huawei и Asus».

var newCompany = [{
            name: "Huawei", // -->COMPANY NAME
            email: "[email protected]",
            phone: "123-123-1234",
            owner: "Drath",
            street: "Gin Blvd",
            city: "Austin",
            country: "USA",
            duns:"123112321",
            type: "buyer"
        },
        {
            name: "Asus", // -->COMPANY NAME
            email: "[email protected]",
            phone: "999-123-8888",
            owner: "Vadar",
            street: "Vince Blvd",
            city: "Dallas",
            country: "USA",
            duns: "123100000",
            type: "supplier"
        }];

        window.localStorage.setItem("newCompany", JSON.stringify(newCompany));

var myApp = angular.module("myApp", []);   
myApp.controller("myController", function ($scope) {
    $scope.companies = ["Apple", "Oneplus", "Samsung"];
    var newCompany = JSON.parse(localStorage.getItem("newCompany"));
    $scope.newComp = {};
    $scope.newComp.push(newCompany.name);
    $scope.companies.push($scope.newComp);
});
<select class = "form-control" name = "addCompany" placeholder = "Select Company" ng-options = "company for company in companies">
                                    </select>

Я удивлен, что ваша консоль не уперлась в этом - у объектов нет метода push.

Zmart 15.11.2018 20:50

Пуш работает только для массива. Превратите ваш объект newComp в объект Array.

BartoszTermena 15.11.2018 20:52

возможно, это должно помочь: stackoverflow.com/questions/30484653/…

BartoszTermena 15.11.2018 20:53

@BartoszTermena Ну, я изменил newComp = {}; к [];. Тем не менее, это не работает.

Vaibhav Shankar 15.11.2018 21:31
Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Директивы позволяют расширять HTML новыми элементами и атрибутами и даже создавать собственные структурные директивы для манипулирования DOM. С...
Разница между Angular и React
Разница между Angular и React
React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые...
0
4
250
1

Ответы 1

Соответствуют ли типы данных? $scope.companies содержит строки, поэтому попробуйте добавить строку с названием компании вручную.

Кроме того, ng-options = "company for company in companies" - я не уверен, что использование одного и того же имени переменной дважды сработает. ng-options обычно используется для сохранения компании объекты в companies, так что ng-модель выбранного будет содержать выбранную компанию:

<select ng-model = "selectedCompany" ng-options = "item.label for item in companies"></select>

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