5

你好我有StudentController如下

function StudentController($scope,StudentService){
    $scope.student = StudentService. getStudent();

   $scope.editStudent = function(){
    return ngDialog.openConfirm({
                      template: 'edit-student.html',
                      className: 'ngdialog-theme-default',
                      scope   : $scope // LINE 1
                });
   }
}

调用函数时editStudent,我想打开一个对话框以显示编辑选项。我想在模型数据中使用$scope.studentofStudentController本身。edit-student.html对于这个特性,我可以使用scopeNgDialog 的属性作为scope:$scope(见第 1 行)。

现在我正在尝试按照Angular-StyleGuideStudentController中 的建议更改我根本不打算使用in的地方。在这种情况下,我该如何访问?$scopecontrollerstudentedit-student.html

function StudentController(StudentService){
        var vm = this;
        vm .student = StudentService.getStudent();

        return ngDialog.openConfirm({
                          template: 'edit-student.html',
                          className: 'ngdialog-theme-default',
                          scope   : ???
                         // $scope is not used in this controller. 
                         //Then what should I send instead?
                         // I tried using scope :  vm . But it didn't work. 
                    });
        }

更新:更新了更多细节以避免混淆。

4

2 回答 2

1

我觉得你有点混淆了。如果你想使用 controllerAs 语法,你需要一个自己的对话框控制器。例如

function StudentController(StudentService){
    var student = StudentService.getOne();
    return ngDialog.openConfirm({
                      template: template,
                      className: 'ngdialog-theme-default',
                      controller: DialogController
                      controllerAs: 'vm',
                      resolve: {student: function() {return student; } }
                });
    }

    function DialogController(student) {
                var vm = this;
                vm.student = student;
    }
于 2015-09-09T12:43:58.240 回答
0

我认为你可以完全省略它。这似乎对我有用。

于 2015-09-29T16:05:47.903 回答