Hallo mit Ich habe StudentController
wie folgtWie Umfang Eigentum von NgDialog setzen, wenn controllerAs Syntax
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
});
}
}
Wenn editStudent
Funktion aufgerufen wird, ich will einen Dialog öffnen bearbeiten Option zu zeigen. Und ich möchte die $scope.student
von StudentController
selbst in der edit-student.html
als Modelldaten verwenden. Für diese Funktion kann ich die scope
Eigenschaft von NgDialog als scope:$scope
verwenden (siehe LINE 1).
Jetzt versuche ich, die StudentController
zu ändern, wie in den Angular-StyleGuide vorgeschlagen, wo ich nicht die $scope
in controller
überhaupt benutzen werde. In diesem Fall, wie kann ich auf student
in edit-student.html
zugreifen?
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.
});
}
aktualisieren: mit mehr Details aktualisiert Verwirrung zu vermeiden.
Entschuldigung, wenn ich die Frage nicht richtig erkläre. Ich möchte keinen separaten Controller für den ngDialog verwenden. Es gibt eine Option wie 'scope: $ scope'. Diese Option funktioniert nur, wenn der aktuelle Controller mit $ scope versorgt wird. Aber wenn der aktuelle Controller der vm-Syntax folgt, wie sollte dann diese "scope" -Eigenschaft von "ngDialog" aussehen? – DRB
Ja dann habe ich deine Frage missverstanden. Ich kann den Umfang in diesem Fall nicht übergeben. Aber da Sie einfach auf den Schüler zugreifen möchten, können Sie ihn als resolve param übergeben. Siehe meine modifizierte Version. –
Sie sagen, dass Sie den übergeordneten Bereich in der ngDialog-Vorlage erben, die Sie benötigen, um einen resolve-Parameter mit einer Funktion zu übergeben, die den aktuellen Gültigkeitsbereich var zurückgibt. Einer nach dem anderen? Ew. – AlxVallejo