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.studentそして、のStudentController自体edit-student.htmlをモデル データとして使用したいと考えています。この機能のためにscope、NgDialog のプロパティを as として使用できますscope:$scope(LINE 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 に答える