gpt4 book ai didi

javascript - 将输入值传递给 $mdDialog

转载 作者:行者123 更新时间:2023-11-30 08:36:08 27 4
gpt4 key购买 nike

我正在尝试将表单输入传递到我的对话框(例如作为标题)。问题是:它没有得到 $scope 的形式。

如果我设置 $scope sinde Controller ,它将正常显示(例如,参见 $scope.text)。但是,如果我尝试获取表单 $scope(请参阅 `$scope.taskTitle),它不会显示任何内容。查看我的代码:

JavaScript

app.controller('tasksCtrl', ['$scope', '$mdDialog',  function($scope, $mdDialog){


$scope.teste = 'Just a test, dude';

$scope.expandTask = function() {

$mdDialog.show({
clickOutsideToClose: true,
controller: DialogController,
scope: $scope,
preserveScope: true,
templateUrl: 'models/dialog.tmpl.php',
locals: {
id: $scope.tasklist.id,
title: $scope.taskTitle
}
});

}

function DialogController($scope, $mdDialog, id, title) {

$scope.id = id;
$scope.title = title;

$scope.hide = function() {
$mdDialog.hide();
};

$scope.cancel = function() {
$mdDialog.cancel();
};
}
}]);

HTML

<div class="input-container float-icon" flex="100" layout="row" ng-repeat="task in tasklist">
<md-input-container flex="100">
<label>New Task...</label>
<input type="text" ng-model="taskTitle" name="taskTitle">
<md-button aria-label="Expandir Tarefa" class="md-icon-button expand-icon" ng-click="expandTask()">
<md-tooltip hide-sm>Expand Task</md-tooltip>
<i class="fa fa-expand"></i>
</md-button>
</md-input-container>

{{taskTitle}}

</div>

最佳答案

您应该将 task 对象从 ng-repeat 传递到 ng-click。

例如 ng-click="expandTask($event, task)"

在您的 $mdDialog Controller 中,您将有权访问该对象:

app.controller('tasksCtrl', ['$scope', '$mdDialog', function ($scope, $mdDialog) {

$scope.expandTask = function (e, task) {
//ng-click="expandTask($event, task)"
$mdDialog.show({
clickOutsideToClose: true,
controller: function ($mdDialog) {
var vm = this;
vm.task = {};
vm.task = task; //your task object from the ng-repeat

$scope.hide = function () {
$mdDialog.hide();
};
$scope.cancel = function () {
$mdDialog.cancel();
};
},
controllerAs: 'modal',
templateUrl: 'models/dialog.tmpl.php',
parent: angular.element(document.body),
targetEvent: e
});
};
}]);

并且在模式模板中,您将使用 controllerAs 符号访问任务对象,例如:

 <h1> {{ modal.task.name }} <h1>

关于javascript - 将输入值传递给 $mdDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31318748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com