0

我有一个带有选择框的表格。它填充了来自 JSON 的数据,其中每一行都有许多键。我的想法是在选择上显示描述字段,按 ID 跟踪和标签中显示的其他值。

这是我的代码:

                <div>
                    <label>Level:</label>
                    <div><select ng-model="levelModel" ng-options="level.code for level in levels track by id" required></select></div>
                    <label>name:{{levelModel.name}}</label>
                    <label>desc:{{levelModel.desc}}</label>
                </div>

这是 JSON

    levels = [
        {id:1, code:"a-code", name:"a-name", desc:"a-desc"},
        {id:2, code:"b-code", name:"b-name", desc:"b-desc"},
        {id:3, code:"c-code", name:"c-name", desc:"c-desc"} ]

我的问题是在选择框上更改数据,数据绑定仅在分配标签初始化数据而不是选定数据时起作用,所有其他时间绑定都不起作用。

我认为原因是我正在注入 $scope。我已经阅读了一些关于使用 $scope.$apply 的指南,但是如果我尝试像这样在我的控制器中使用 $scope.$apply

$scope.$apply(function(){
    $scope.levelModel.name = "test"; })

几秒钟后,我收到$rootScope:inprogr 错误

这是我的带有路由的 app.js

app.config(['$routeProvider',function($routeProvider){
        $routeProvider
            .when("/report",{
                          templateUrl:"/reportV.html",
                          controller:"reportController",
                          resolve:{
                                   levels: function(selectSrv){
                                       return selectSrv.select(table); } } })
            .otherwise({redirectTo:'/'});

这是我的控制器

app.controller("reportController", ["$scope", "levels", function($scope,levels){

    $scope.levels = levels.data;

我该如何解决?

PS我的代码被简化,视图被路由并在内部解析我运行一些服务来接收来自数据库的数据

4

0 回答 0