Javascript 在AngularJS中编辑数据

Javascript 在AngularJS中编辑数据,javascript,angularjs,single-page-application,Javascript,Angularjs,Single Page Application,我刚开始学习angular,尝试做一些SPA,但面临编辑数据的问题。obect在控制台中可见,但它没有出现在页面上,我做错了什么? 这里是我的控制器: var app = angular.module("testModule", ['ngRoute']); app.config(function ($routeProvider){ $routeProvider.when('/', { templateUrl: 'pages/main.html', con

我刚开始学习angular,尝试做一些SPA,但面临编辑数据的问题。obect在控制台中可见,但它没有出现在页面上,我做错了什么? 这里是我的控制器:

var app = angular.module("testModule", ['ngRoute']);

app.config(function ($routeProvider){
    $routeProvider.when('/', {
        templateUrl: 'pages/main.html',
        controller: 'addCtrl'
    })
    .when('/save', {
        templateUrl: 'pages/save.html',
        controller: 'editCtrl'
    })
    .when('/edit', {
        templateUrl: 'pages/edit.html',
        controller: 'addCtrl'
    })
})

app.service('dataService', function($http) {
  var data = {};
  data.list = [];
  var getData = function() {
     $http.get("model/data.json").then(function (response) {
      data.list = response.data;
    });
  }
  return {
    getDataFromJson: getData,
    getData: data,
  }
});

app.controller("mainCtrl", function($scope, dataService) {
    dataService.getDataFromJson();  
});

app.controller("editCtrl", function($scope, dataService) {
  $scope.data = dataService.getData;

  $scope.editData = function(adverse){
    $scope.adverse= adverse;
    console.log($scope.adverse)
  }
});
以及第页的部分:

<div class="panel">
    <form name="addForm" >
        <div class="well" >
            <div class="form-group">
                <label for="name">Name:</label>
                <input type='text' id="name" class="form-control" ng-model="adverse.name" placeholder={{adverse.name}} />
                <label for="shop">Shop:</label>
                <input type='text' id="shop" class="form-control" ng-model="adverse.shop" placeholder="{{adverse.shop}}" />
                <label for="begin">Begin:</label>
                <input id="begin" class="form-control" ng-model="adverse.begin" placeholder="{{adverse.begin}}" >
                <label for="end">End:</label>
                <input id="end" class="form-control" ng-model="adverse.end" placeholder="{{adverse.end}}" />   
                <button type="submit" class="btn btn-primary btn-block add_btn" ng-click="editData(adverse)">
                    <a href="#/">Edit</a>
                </button>
            </div>
        </div>
    </form>
</div>

姓名:
商店:
开始:
完:

这里还有一个屏幕截图:对象的道具应该在输入中,但它没有。


如果可能的话,你能给我一个例子,我可以用另一种方法来做吗?

在plunker中重新创建了你的场景。但它是有效的。请看一下这个plunker,在那里你可以看到StateProvider,它被用来代替NgRoute

我看到的一件不正确的事情是,您正在函数中发送不利对象,然后将参数设置为不利作用域。 问题是,$scope.advanced已经保存了这些值,因此您不需要传递该值并再次将其设置到范围中。请记住,范围是视图和ctrl之间的粘合剂

$scope.editData = function(){
    console.log($scope.adverse)
}

它应该做什么?您正在尝试预填充您的输入吗?F12,有错误吗?确保spa主html页面包含对控制器等的引用。。