我正在尝试处理ngModel不同浏览器中的不同行为.
我的指令包装jqueryUI自动完成,并在其select调用的事件上ngModel.$setViewValue(selectedItem.id).自动完成功能允许用户通过鼠标单击或按enter键盘选择项目.
如果建议的项目是:
{
"name": "Apple",
"id": "1000"
}
Run Code Online (Sandbox Code Playgroud)
我希望在选择之后,ngModel值将被选为项目id- 1000.
在Chrome中它的工作原理确定-它集$viewValue和$modelValue正确的($modelValue=1000).
在Firefox中它将模型设置为Chrome($modelValue=1000),但是当我点击其他地方时 - 使模糊(然后浏览器可能触发change事件),模型更改并且它变得与可见输入值($modelValue='Apple')相同.
在IE 11中,只有当我通过鼠标单击选择项目时,它才会设置模型正确.如果按下选择它enter,模型将变为可见输入值($modelValue='Apple')
这是plunkr:http://plnkr.co/edit/o2Jkgprf8EakGqnpu22Y? p =preview
我想在每个浏览器中达到相同的行为.如何处理那些问题?
我试图合并两个数组省略重复的值,并将其作为一个JSON与Slim框架返回.我做了以下代码,但结果我得到unique了JSON的属性作为对象 - 而不是数组.我不知道为什么会这样,我想避免它.我该怎么做?
我的代码:
$galleries = array_map(function($element){return $element->path;}, $galleries);
$folders = array_filter(glob('../galleries/*'), 'is_dir');
function transformElems($elem){
return substr($elem,3);
}
$folders = array_map("transformElems", $folders);
$merged = array_merge($galleries,$folders);
$unique = array_unique($merged);
$response = array(
'folders' => $dirs,
'galleries' => $galleries,
'merged' => $merged,
'unique' => $unique);
echo json_encode($response);
Run Code Online (Sandbox Code Playgroud)
作为JSON响应,我得到:
{
folders: [] //array
galleries: [] //array
merged: [] //array
unique: {} //object but should be an array
}
Run Code Online (Sandbox Code Playgroud)

似乎array_unique返回了一些奇怪的东西,但是原因是什么?
我正在尝试用图像和youtube视频构建简单的滑块.我想让它在触摸设备上工作正常,所以我想使用ng-swipe-*angular的ngTouch模块.不幸的是,滑动无法在youtube的iframe上运行.我试着设置较低z-index: -10;,但后来我无法播放视频.
你知道如何解决这个问题吗?
有一个片段:
var app = angular.module('app', ['ngTouch']);
app.controller('ctrl', function($scope) {
$scope.msg = function(msg) {
alert(msg);
}
});Run Code Online (Sandbox Code Playgroud)
.ok {
width: 300px;
height: 100px;
background: green;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://code.angularjs.org/1.4.8/angular.min.js"></script>
<script src="https://code.angularjs.org/1.4.8/angular-touch.min.js"></script>
<div ng-app="app">
<div ng-controller="ctrl" ng-swipe-right="msg('right')" ng-swipe-left="msg('left')">
<div class="ok">swipe works here</div>
<div>
<iframe width="300" height="200" src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
(测试它的最佳方法是在Chrome开发者控制台中运行它并在触摸设备上模拟)
嗨,我是节点的新手,我正在构建一个简单的MEAN堆栈应用程序,以减少我发送这样的前端文件的代码
app.use(express.static(path.join(__dirname, 'public')));
Run Code Online (Sandbox Code Playgroud)
我还构建了一个简单的中间件,用于简单的身份验证
requireLogin = function (req, res, next) {
if (!req.user) {
console.log('redirecting :)');
res.redirect('/');
} else {
next();
}
};
app.use('/rooms',requireLogin);
Run Code Online (Sandbox Code Playgroud)
我正试图在有角度的路线上使用这个中间件.但是当我在我的角度应用程序中导航时它不起作用(当我直接将URL放到地址栏时它可以工作)我还删除了由角度添加的/#/.
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
Run Code Online (Sandbox Code Playgroud)
我正在使用ui-router进行路由.
我正在使用Spring Boot中的一个简单应用程序.它是在本地开发的(并且有效):
application.properties放置在项目的根目录中src/main/groovy,src/main/resources等)现在是我想将它部署到Openshift的时候,所以我需要创建一个带有MySQL设置的附加生产配置,但我不知道在哪里放置它以及如何使用它.
所以我的问题是:
development和production)?build.gradle吗?我是一个前端开发者,所有这些后端的东西对我来说并不明显,所以请在你的答案中考虑它.
这是我目前的内容 build.gradle
plugins {
id 'org.springframework.boot' version '1.5.3.RELEASE'
id 'java'
id 'groovy'
}
jar {
baseName = 'myproject'
version = '0.0.1-SNAPSHOT'
}
repositories {
jcenter()
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile("org.springframework.boot:spring-boot-starter-test")
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile 'mysql:mysql-connector-java'
compile("com.h2database:h2")
compile("org.springframework.boot:spring-boot-starter-security")
compile('io.jsonwebtoken:jjwt:0.7.0')
compile localGroovy()
}
Run Code Online (Sandbox Code Playgroud) 我想知道如何在主要浏览器默认禁用第三方cookie时,在2019年处理Oauth2隐式授权流程中的刷新令牌.
一些细节:
目前的设置:
UI SPA应用程序下 ui.example.com
身份提供者(UAA by CloudFoundry)下 uaa.api.example.com
场景:
当用户登录时,身份提供商将cookie设置为域的用户详细信息,uaa.api.example.com并在重定向的Location标头中返回JWT .
JWT存储在本地存储器中(for ui.example.com),但它仅在1h内有效,所以我想刷新它.
prompt=none发送到IDP授权端点的查询参数可以刷新(过程在Auth0指南中有详细描述(它不是UAA,但流程是相同的)
在每个20米隐藏的iframe中设置了src,uaa.api.exmaple.com/oauth/authorize?prompt=none创建了启动签名过程而无需用户提供其凭据的内容.当进程结束时,响应中返回的新JWT将再次存储在本地存储中.
问题:
当允许第三方cookie时,浏览器会将IDP的cookie添加到iframe发出的请求中,因此流程有效,我在响应中获得新令牌.
如果在浏览器的设置中禁用了第三方Cookie,则iframe无法访问自己的Cookie,因此login_required会返回错误,而不是新的JWT .无法通过iframe访问cookie使得令牌续订无法使用
题:
对于我的第三方Cookie问题,有什么解决方案吗?
如果没有,我可以用来登录和刷新令牌的Implicit Grant流量和SPA的替代品吗?
您好,我有一个奇怪的问题,只出现在角色1.3的IE 11中.
我有一个指令,它使我能够存储Object的ngModel价值input元素.它对AngularJS 1.2没有任何问题,但它不适用于AngularJS 1.3(仅在Internet Explorer中).
它只是代码:
elem.on('input', function(){
var val = elem.val();
ngModel.$setViewValue({
'sampleData': new Date().getTime(),
'value': val
});
scope.$apply();
});
Run Code Online (Sandbox Code Playgroud)
当我在IE中键入文本时,输入将正确的对象设置为模型值几毫秒,但接下来将其更改为字符串.在其他浏览器中,它ngModel正确更新.
你可以在那里看到这种奇怪的行为:
AngularJS 1.2:http://jsfiddle.net/aartek/e6Lvpqj3/(适用于IE,Chrome和Firefox),
AngularJS 1.3:http://jsfiddle.net/aartek/mvx9dbyu/2/(在IE 11中不起作用,适用于Chrome和Firefox)
是什么原因,我该如何解决?
这是我的全部指示:
app.directive('myInput',function(){
return{
restrict: 'A',
require: 'ngModel',
scope: {},
priority: 1,
link: function(scope, elem, attrs, ngModel){
elem.off('input');
elem.off('change');
ngModel.$render = function(){
var model = {
'sampleData': 'sampleData',
value: ''
}
ngModel.$setViewValue(model);
elem.val(model.value); …Run Code Online (Sandbox Code Playgroud) 我想在我的应用程序中使用init的数据生成器.它在使用.save()方法创建对象时工作正常,但是当我想使用专用服务时它不起作用,因为空指针而不是注入服务.那是我的代码:
我在conf/spring中定义了DataGenerator bean
beans = {
dataGenerator(DataGenerator)
}
Run Code Online (Sandbox Code Playgroud)
我Bootstrap.groovy看起来像:
class BootStrap {
def dataGenerator
def init = { servletContext ->
dataGenerator.generateData()
}
}
Run Code Online (Sandbox Code Playgroud)
在`DataGenerator'中我有:
class DataGenerator{
BookService bookService
def generateData() {
log.info("Generating books")
createBooks()
}
def createBooks(){
(1..40).each() {
CreateBookCommand command = new CreateBookCommand()
/* some command populate code*/
bookService.create(command);
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,我不能调用create()方法,因为bookService总是如此null
BookService是简单的grails服务,有一些依赖,当然放在 grails-app/services
class BookService {
UserService userService
SpringSecurityService springSecurityService
def create(CreateBookCommand command){
Book book = new Book()
command.bindTo(book)
book.save(flush:true, …Run Code Online (Sandbox Code Playgroud) 我有一个简单的脚本,可以在文件发生更改时将其上传到保管箱。我想在系统启动时运行它并将其保留在后台以便让脚本监视文件。
我创建了一个 plist,但它运行脚本并以代码 0 退出。
列表
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.launchd.dropbox_uploader</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>~/dropbox-uploader.sh; wait</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
wait(在命令中使用或不使用都不起作用)
脚本(它工作正常并且在命令行中运行时不会退出)
#!/bin/sh
fswatch -o ~/file.txt | xargs -n1 -I{} curl -X POST https://content.dropboxapi.com/2/files/upload \
--header 'Authorization: Bearer XXXXX' \
--header 'Content-Type: application/octet-stream' \
--header 'Dropbox-API-Arg: {"path":"/backup/file.txt","strict_conflict":false,"mode":{".tag":"overwrite"}}' \
--data-binary @'~/file.txt'
Run Code Online (Sandbox Code Playgroud)
launchtl list输出
~> launchctl list | grep com.example (base)
- 0 com.example.launchd.dropbox_uploader
Run Code Online (Sandbox Code Playgroud)
如何实现让它在后台运行的目标?我不确定我的 plist 或脚本是否有问题。