我有一个带有选择框的表单。它填充了来自JSON的数据,其中每行有许多键。我的想法是在select上显示Description字段,在ID上显示track,在label中显示其他值。
这是我的代码:
<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"} ]
我的问题在于更改选择框上的数据,数据绑定仅在分配标记init数据而不是选定数据时起作用,所有其他时间绑定都不起作用。
我认为原因是我正在注入$ scope。我已经阅读了一些关于使用$ scope的指南。$ apply但是如果我尝试使用$ scope。$在我的控制器中应用这样
$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;
我该如何解决?
P.S。我的代码被简化,视图被路由并且在内部解析我运行一些服务来从db
接收数据