AngularJs newItem.push()进入选择选项

AngularJs newItem.push()进入选择选项,angularjs,Angularjs,对AngularJS来说是相当新的,第一次在这里发布。在数据输入页面上,我显示一个选择列表,其中列表中的选项来自数组。数组中可以添加需要反映在选择列表中的项。我可以看到项目正在添加到数组中,但是如果不重新加载整个页面,选项列表不会更新 初始化后,如何更新或刷新选择选项列表 <select ng-model="VendorsController.selectedVendor.Items.selectedItem.locno" style="width:300px;" si

对AngularJS来说是相当新的,第一次在这里发布。在数据输入页面上,我显示一个选择列表,其中列表中的选项来自数组。数组中可以添加需要反映在选择列表中的项。我可以看到项目正在添加到数组中,但是如果不重新加载整个页面,选项列表不会更新

初始化后,如何更新或刷新选择选项列表

<select ng-model="VendorsController.selectedVendor.Items.selectedItem.locno" 
    style="width:300px;" 
    size="1" 
    ng-options="opt.value as opt.label for opt in VendorsController.selectedVendor.Locations" 
    required >
</select>
数组反映新项已正确推送,但选项列表未显示它。有什么建议吗

下面是一些关于调用push()的附加代码

我的表单按钮调用上述函数

<button ng-show="VendorsController.selectedVendor.Locations.selectedLoc" class="btn btn-default" data-dismiss="modal" ng-click="VendorsController.SaveLocation()">Save</button>

你能给出更多关于你要把它推到列表上的代码吗?这是否在需要调用
$scope.$apply()
的“角度世界”之外?我有一个带有ng click的按钮,指向函数SaveEdit()。然后,此函数对服务器执行回调以保存发生的更改。从服务器返回后,我尝试推送()。我在$apply上乱搞了一下,但遇到了一些rootscope消息,我猜是因为我不知道自己在做什么…:-(还不确定如何在我的原始帖子中发布更多代码,$rootScope消息是什么?听起来像是应用问题。或者是继承问题,您没有实际注销同一绑定数据变量。您有编辑帖子的选项吗?编辑链接就在angularjs标记下。如果您可以模拟JSFIDLE或类似的问题。啊,我看到你编辑了这篇文章。我的错误。控制器代码中的
\u这个
是什么?我从未见过有人绑定到控制器(即
ng model=“VendorsController.selectedVendor.Items.selectedItem.selectedItem.locno”
)。我现在的最佳猜测(取决于你初始化控制器的方式)你需要把
selectedVendor
放在
$scope
上,然后绑定到它(这是人们处理角度绑定的主要方式)。如果这是个问题,我将用一个例子写一些更完整的东西。
this.SaveLocation = function(){
    $http.post('cfm/callback4.cfmx', _this.selectedVendor.Locations.selectedLoc ).
        success(function (data, status, headers, config) {
            // if new location pk now reflects valid data
             _this.selectedVendor.Locations.selectedLoc = data;
             //console.log(data);
            //console.log(status);
            //console.log(config);

             // add location to list
            if (_this.selectedVendor.Locations.addNew) {
                _this.selectedVendor.Locations.selectedLoc.value = data.locno

                // this push is not showing up on the locations options
_this.selectedVendor.Locations.push(_this.selectedVendor.Locations.selectedLoc);

            }
            // must reset after promiss is returned
            _this.selectedVendor.Locations.originalLoc = undefined;
            _this.selectedVendor.Locations.selectedLoc = undefined; // null;
            _this.selectedVendor.Locations.addNew = false ;

        }).
        error(function (data, status, headers, config) {
            // log error
            console.log(data)
            console.log(status)
            console.log(config)

        });
}; // end SaveLocation
<button ng-show="VendorsController.selectedVendor.Locations.selectedLoc" class="btn btn-default" data-dismiss="modal" ng-click="VendorsController.SaveLocation()">Save</button>
app.controller('VendorsController', ['$scope', '$window', '$http', '$routeParams', '$location', 'state','$timeout','$upload', function ($scope, $window, $http, $routeParams, $location, state, $timeout,$upload) {

var _this = this; // the controller
this.name = "VendorsController";
this.params = $routeParams;