Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度选择更改时刷新_Javascript_Angularjs - Fatal编程技术网

Javascript 角度选择更改时刷新

Javascript 角度选择更改时刷新,javascript,angularjs,Javascript,Angularjs,我正在处理一个有2个选择列表的页面,每个列表由来自REST服务的呼叫填充: var mainApp = angular.module('taxonomyViewer', []); mainApp.controller('apiTaxonomyController', function ($scope, $http) { $scope.taxonomyList = []; // the taxonomy list for the first select list

我正在处理一个有2个选择列表的页面,每个列表由来自REST服务的呼叫填充:

  var mainApp = angular.module('taxonomyViewer', []);

    mainApp.controller('apiTaxonomyController', function ($scope, $http) {

        $scope.taxonomyList = []; // the taxonomy list for the first select list
        $scope.taxonomyStates = []; // the state list for the taxonomy selected in the first list

        $http({
            method: 'GET',
            url: '/api/reports/taxonomies'
        }).then(function (response) {
            $scope.taxonomyList = angular.fromJson(response.data);
            console.log($scope.taxonomyList);
        });

        $scope.update = function () {
            $http({
                method: 'GET',
                // api/reports/taxonomies/{ent_id}/states
                url: '/api/reports/taxonomies/' + $scope.selectedItem + '/states'
            }).then(function (response) {
                $scope.taxonomyStates = angular.fromJson(response.data);
                console.log($scope.taxonomyStates);

            });
            console.log("selected item: " + $scope.selectedItem);
        };
我的选择列表如下:

 <div class="col-md-4">
    <div ng-app="taxonomyViewer" ng-controller="apiTaxonomyController">
        <select ng-model="selectedItem"
                ng-options="items.ent_id as items.ent_desc for items in taxonomyList"
                ng-change="update()">
            <option value=""> Select Taxonomy </option>
        </select>

    </div>
    <br />
    <div ng-app="taxonomyViewer" ng-controller="apiTaxonomyController">
        <select ng-model="selectedState"
                ng-options="items.ens_guid as items.enk_name + ' - ' + items.sg_name for items in taxonomyStates"
                ng-change="updateState()">
            <option value=""> Select Taxonomy State </option>
        </select>

        <br />
    </div>
    <div id="taxonomyTree" class="fancytree-fade-expander">
    </div>

</div>

选择分类法

选择分类状态

当您从第一个列表中选择一个项目时,将调用REST服务,然后将填充第二个列表。REST服务将从$scope.update函数内部调用,但选择列表未加载$scope.taxonystates项。

您将两次连接应用程序和控制器-这将创建两个应用程序和两个控制器

当你的
update
方法获取数据时,它会将数据分配给app1上的
taxonomyStates
,因为在那里调用
update
。然而,应用程序2是一个试图显示它

ng-app="taxonomyViewer" ng-controller="apiTaxonomyController"

这些属性应该位于最高的DOM元素上,这对它们来说是有意义的。基于这个例子-我想说
ng控制器
应该在你的
col-md-4
div
上,并且
ng应用程序
应该几乎总是在
主体
或正下方的一个元素上。

控制台有错误消息吗?谢谢。我对angular还不熟悉,所以我还在学习一些模型。