我对AngularJS很新,并且在从模态对话服务返回数据时遇到问题.基本上,我复制了Dan Wahlin的服务http://weblogs.asp.net/dwahlin/archive/2013/09/18/building-an-angularjs-modal-service.aspx,并从我的控制器调用它.
myApp.controller('MyController', function($scope, ModalService) {
window.scope = $scope;
$scope.mydata = {name: ""};
$scope.showModal = function () {
var modalOptions = {
closeButtonText: 'Cancel',
actionButtonText: 'Save',
headerText: 'Save Dialog'
}
ModalService.showModal({}, modalOptions).then(function (result) {
});
}
});
Run Code Online (Sandbox Code Playgroud)
然后我就像这样:
<div class="modal-header">
<h3>{{modalOptions.headerText}}</h3>
</div>
<form ng-submit="modalOptions.submit()">
<div class="modal-body">
<label>Name</label>
<input type="text" data-ng-model="mydata.name">
</div>
<div class="modal-footer">
<button type="button" class="btn" data-ng-click="modalOptions.close()">{{modalOptions.closeButtonText}}</button>
<button type="submit" class="btn btn-primary">{{modalOptions.actionButtonText}}</button>
</div>
Run Code Online (Sandbox Code Playgroud)
这个模态被调用如下:
<button class="btn btn-primary hidden pull-right" id="save" data-ng-click="showModal()">Save</button>
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何将名称字段的值返回给控制器?我已经浏览了整个网络,并且所有示例都具有在控制器中打开模态驻留的功能,这使得它更容易,因为控制器中的$ scope也存在于打开模态的函数中.
我尝试将以下代码添加到服务中的"show"函数,但它不起作用.
tempModalDefaults.resolve = function($scope) {
mydata …Run Code Online (Sandbox Code Playgroud) javascript modal-dialog twitter-bootstrap angularjs angular-ui-bootstrap
我有一个使用 Okta 登录的应用程序。我正在尝试使用 Cypress 和 Puppeteer 设置自动化测试。我遇到的问题是,当我使用 启动 puppeteer 时{headless: true},它没有填写登录表单。{headless: false}在 Cypress 之外打开另一个浏览器窗口并按预期工作。它填写登录表单,正确登录,但我无法在该窗口中运行任何 cypress 测试。
on('task', {
login({username, password}) {
return (async () => {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto(config.baseUrl);
await page.waitForNavigation();
await page.waitFor('#okta-signin-username');
await page.type('#okta-signin-username', username, {delay: 100});
await page.waitFor('#okta-signin-password');
await page.type('#okta-signin-password', password, {delay: 100});
await page.click('#okta-signin-submit');
await page.waitForNavigation();
return true;
};
});
Run Code Online (Sandbox Code Playgroud)
以下是它的使用方式:
it('my test', () => {
cy.visit('/');
cy.viewport(1280, 1024);
cy.login('username', 'password');
//tests go …Run Code Online (Sandbox Code Playgroud)