2017-05-30 81 views
0

我剛開始研究角度,試圖做出某種SPA,但面臨編輯數據的問題。該控件在控制檯中可見,但它沒有出現在頁面上,我做錯了什麼? 這裏我的控制器:在AngularJS中編輯數據

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> 

而且,這裏是截圖:對象的假設是在輸入的道具,但它並沒有。 enter image description here

如果可能,你能給我一個例子,說明如何以其他方式做到這一點嗎?

+0

它應該做什麼?你是否試圖預填你的輸入? – ukn

+0

F12,有什麼錯誤?一定要有spa主html頁面有對控制器的參考等。 –

回答

0

this重新創建時重新創建了你的場景。但它的工作。請看看這個plunker,你ALO可以看到StateProvider這是用來代替NgRoute

一兩件事,我看這是不正確的是你要發送的不良對象的功能,然後設置對範圍不利的參數。 問題在於$ scope.adverse已經包含這些值,所以您不需要再傳遞該值並將其重新設置爲範圍。記住範圍是你的視圖和ctrl之間的膠水

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