Angularjs 无法在modal、ModalInstance.result.中绑定数据,然后总是被解除

Angularjs 无法在modal、ModalInstance.result.中绑定数据,然后总是被解除,angularjs,Angularjs,我有一份记录清单。在每条记录中,我都有一个编辑按钮。单击编辑按钮将打开一个需要绑定当前数据的模式 但是,当我单击“编辑”时,总是会打开一个空模式,而不填充数据。在调试时,我知道由于一些问题,控件将进入错误部分,因此我不断收到一条消息,显示“模态正在被解除” 以下是我的代码: var EditModalInstance = $modal.open({ templateUrl: "EditCourseModal.html", controller: EditModalInstanceCt

我有一份记录清单。在每条记录中,我都有一个编辑按钮。单击编辑按钮将打开一个需要绑定当前数据的模式

但是,当我单击“编辑”时,总是会打开一个空模式,而不填充数据。在调试时,我知道由于一些问题,控件将进入错误部分,因此我不断收到一条消息,显示“模态正在被解除”

以下是我的代码:

var EditModalInstance = $modal.open({
   templateUrl: "EditCourseModal.html",
   controller: EditModalInstanceCtrl,
   resolve: {
       courseDetails: function () {
          return $scope.courseDetails;
       }
   }
});

EditModalInstance.result.then(function (selectedItem) {
   $scope.selected = selectedItem;
   $log.info(selectedItem + "Here I am.");
}, function () {
   $log.info('Modal dismissed at: ' + new Date()); //control is coming in this part always
});
这是我的模态控制器:

var EditModalInstanceCtrl = function ($scope, $modalInstance, $log, coursesFactory,
courseDetails)              {

$scope.courseDetails = courseDetails;
$scope.selected = $scope.courseDetails;

$scope.update = function () {
    coursesFactory.updateCourse($scope.courseDetails)
    .success(function (status) {
        $scope.status = "Course details updated.";
        $log.info(status);
        getCourses();
    })
    .error(function (error, status) {
        $scope.status = "Unable to update course details.";
        $log.warn(error, status);
    });
};

$scope.cancel = function () {
    $modalInstance.dismiss('close');
};
};
然后我在视图中使用了此课程详细信息:

<script type="text/ng-template" id="EditCourseModal.html">
    <div class="modal-header">
       <span><strong>Edit course</strong></span>
       <button type="button" class="close" data-ng-click="cancel()">x</button>
    </div>
    <div class="modal-body">
       <dl>
         <dt>Id</dt>
         <dd><span>{{courseDetails.Id}}</span></dd>
       </dl>
       <dl>
         <dt>Name</dt>
         <dd>
            <input type="text" data-ng-model="courseDetails.Name"></input>
         </dd>
       </dl>
       <dl>
         <dt>Duration</dt>
         <dd>
            <input type="text" data-ng-model="courseDetails.Duration"></input></dd>
         </dl>
     </div>
     <div class="modal-footer">
          <button class="btn btn-primary" data-ng-click="update()">Update</button>
          <button class="btn btn-warning" data-ng-click="cancel()">Cancel</button>
     </div>
</script>

编辑课程
x
身份证件
{{courseDetails.Id}
名称
期间
更新
取消

我怀疑您的决心不是承诺对象,即$scope.courseDetails;这也许不是一个承诺

试着这样做:

 resolve:
   courseDetails: function () {
      return CourseFactory.getCourseDetails();
   }

确保getCourseDetails返回承诺。

错误回调包含一个参数。为
函数(error){$log.info('模式被解除,因为:“+error”)提供一个参数;
。然后检查是否有一些可用的详细信息。@Chandermani否。我想我在调试时弄错了。这既不是错误部分,也不是成功部分。我不知道发生了什么。当我尝试取消模式时,它就起作用了。但我不断得到[$rootScope:inprog]调试时,$apply已作为错误进行中。向我们显示控制器中注入的CoursedDetails的代码。如果这是所有代码,则$scope.CoursedDetails=CoursedDetails;会导致$scope.CoursedDetails未定义,因为我看不到CoursedDetails被定义为任何角度服务。请尝试调试程序在该行放置断点或者尝试硬编码$scope.CoursedDetails={Id:1,名称:'ww'};用于调试目的,并向我们显示您得到的结果。我已调试了代码。$scope.CoursedDetails在编辑()时填充了所需的数据函数在根作用域中调用。这是$scope.CoursedDetails在运行时的内容:{0:Object Duration:“2个月”Id:2 Name:“LINQ”}