2013-02-05 3 views
0

저는 각도가 너무 새롭기 때문에이 코드의 문제점이 무엇인지 알아낼 수 없습니다. 필요한만큼 더 많은 코드를 제공하게되어 기쁩니다.모달 각도. 내 컨트롤러에 무엇이 잘못되었는지 알아낼 수 없습니다.

어떤 각도 동작도 일어나지 않는 것이 문제입니다. 표가 채워지지 않고 아무 버튼도 아무 것도하지 않습니다. http get은 결코 내 서버로 보내지 않습니다. 그래서, 나는 바보 같은 실수를 저 지르더라도 누군가가 빨리 살펴보고 알려주지 않을지 궁금해하고있었습니다. 여기

function locateController($scope, $http) { 
      $scope.init = function() { 
       $http.get('@(Url.Action<WorkorderController>(c => c.GetLocateNumbers(Model.Id)))').success(function (data) { 
        $scope.model = data; 
        $scope.locateNumber = $scope.locateNumbers(); 

        $("#loading").css('display', 'none'); 
        $("#ctrl").css('visibility', 'visible'); 
        $scope.master = angular.copy($scope.model); 
       }); 
      }; 

      $scope.init(); 

      $scope.reset = function() { 
       if (confirm('Are you sure you want to discard all your changes?')) { 
        $scope.model = angular.copy($scope.master); 
        $(".selected").removeClass("selected"); 

        $scope.locateNumber = $scope.locateNumbers(); 
       }; 
      }; 

      $scope.removeLocate = function (remove) { 
       if (confirm('Are you sure you want to remove this location number?')) { 
        var oldLines = $scope.locateNumber; 
        $scope.labor = []; 
        angular.forEach(oldLines, function (line) { 
         if (line != remove) $scope.locateNumber.push(line); 
        }); 
       } 
      }; 

      $scope.locateNumbers = function() { 
       if (!$scope.model) { 
        return null; 
       } 

       var lines = []; 
       angular.forEach($scope.model, function (item) { 
        if (item.IsActive) { 
         lines.push(item); 
        } 
       }); 
       return lines; 
      }; 

      $scope.addLocateLine = function() { 
       $scope.locateNumber.push({ 
        locationNum: '' 
       }); 
      }; 

      $scope.dirty = function() { 
       if ($scope.model === undefined) { 
        return false; 
       } 
       var isDirty = !angular.equals($scope.locateNumber, $scope.master.locateNumbers); 
       if (isDirty) { 
        $scope.notice = null; 
       } 
       return isDirty; 
      }; 

      $scope.save = function() { 
       $scope.model.Size = $scope.locateNumber.length; 
       $scope.model.locateNumbers = $scope.locateNumber; 

       $http({ 
        method: 'post', 
        url: '@(Url.Action<WorkorderController>(c => c.AssignLocate(Model.Id,null)))', 
        headers: { 
         "Content-Type": 'application/json', 
         Accepts: 'application/json' 
        }, 
        data: { wo: $scope.model } 
       }).success(function (data, status, headers, config) { 
        $scope.init(); 
       }).error(function (data, status, headers, config) { 
        alert('An error has occurred. Please try again later or contact an administrator'); 
       }); 
      }; 
     }; 

는 HTML입니다 :

<div class="modal hide" id="assignLocate" data-ng-controller="locateController"> 
    <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal">×</button> 
     <h3 class="addRow">Locate Number <button type="button" class="btn btn-warning btn-mini" data-ng-click="addLocateLine()">Add</button></h3> 
    </div> 
    <div> 
     <div class="span3 offset1"> 
      <table cellpadding="0" cellspacing="25" border="0" class="table" id="locateNumbers"> 
       <thead> 
        <tr> 
         <th>Locate Number</th> 
         <th>Action</th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr ng-repeat="num in locateNumber"> 
         <td> 
          <ng-form name="LocateNum"> 
           <input type="text" ng-model="num.LocateNum" class="span2" required name="Input"/> 
           <span class="alert-error" ng-show="LocatenNum.Input.$error.required"><strong>*Required</strong></span> 
          </ng-form> 
         </td> 
         <td> 
          <button class="btn btn-mini btn-danger" ng-click="removeLocate(line)">Remove</button> 
         </td> 
        </tr> 
       </tbody> 
      </table> 
      <br /><br /> 
      <div> 
       <div class="span3" style="padding-bottom:25px; margin-left: 0px"> 
        <button type="button" class="btn btn-inverse" ng-click="reset()" ng-disabled="!dirty()">Reset</button> 
        <button type="button" class="btn btn-primary pull-right" ng-disabled="form.$invalid" ng-click="save()" ng-disabled="!dirty()">Save</button> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

그리고 여기 JS 바이올린입니다 : 내가 눈치 챘을 http://jsfiddle.net/exmMY/

답변

1
여기

이슈 여기

내 각 코드 :

  1. HTML에는 'ng-app'가 없습니다.
  2. locateNumbers 함수는 null을 반환하지만 코드의 다른 부분은 locateNumber이 배열이 될 것으로 예상합니다.

추가 기능을 제외하지 않았습니다. 변경된 샘플은 여기에서 찾을 수 있습니다 : http://plnkr.co/edit/A52VmYLznpNqMLq4XLK0?p=preview

+0

내 주요 문제는 내가 2 ng-app를 가지고 있다는 것이 었습니다. 그러나 귀하의 의견은 여전히 ​​사실입니다. 대답 할 시간을내어 주셔서 감사합니다. – PFranchise

관련 문제