任何人都可以建议一个可扩展的设计模式来实现对照片和相册的访问控制,每个都有个人隐私设置(即所有者,群组成员,公共)?
我正在使用CakePHP,我在ACL组件上阅读的示例似乎控制对控制器/操作的访问,而不是对象本身.当我试图跟踪时似乎失控
特别是当你每张专辑可能有1000张照片时,照片就是habtm专辑.我是对的还是我完全错过了什么?
有人可以添加一些伪代码来帮助我理解如何解决这个问题吗?或者指出我正确的方向因为我知道它已经在Flickr这样的网站上完成了.
TIA.
这条线在一个使用 angular2 RC4 的项目中工作
import * as mapTypes from '../../../../node_modules/angular2-google-maps/core/services/google-maps-types.d.ts';
发生了什么?
现在我正在尝试使用 RC6 的新种子文件,同一行给了我这个错误
error TS2691: An import path cannot end with a '.d.ts' extension. Consider importing '../../../../node_modules/angular2-google-maps/core/services/google-maps-types' instead.
但是,如果我进行建议的更改,我会得到
Cannot find module '../../../../node_modules/angular2-google-maps/core/services/google-maps-types'
该.d.ts文件如下所示:
/**
* angular2-google-maps - Angular 2 components for Google Maps
* @version v0.12.0
* @link https://github.com/SebastianM/angular2-google-maps#readme
* @license MIT
*/
export declare var google: any;
export interface GoogleMap {
constructor(el: HTMLElement, opts?: MapOptions): void;
panTo(latLng: LatLng | LatLngLiteral): void;
setZoom(zoom: number): void;
addListener(eventName: …Run Code Online (Sandbox Code Playgroud) 我正在使用谷歌地图JS API和google.maps命名空间 npm install @types/googlemaps.我相信API是动态加载的,因此google.mapsJS全局不会立即可用.
但我不明白为什么我会得到运行时错误:Uncaught ReferenceError: google is not defined当我尝试google.maps.Marker使用a class而不是a 进行扩展时interface
// No problem!
export interface UuidMarker extends google.maps.Marker {
uuid: string;
}
// Uncaught ReferenceError: google is not defined!!
export class UuidMarker0 extends google.maps.Marker {
uuid: string;
constructor(uuid: string, options?: gmMarkerOptions) {
super(options);
this.uuid = uuid;
}
}
Run Code Online (Sandbox Code Playgroud)
仅使用接口的替代方法
// this works
export function UuidMarkerFactory(uuid: string, marker: google.maps.Marker): google.maps.Marker & {uuid:string} {
return Object.assign(marker, {uuid});
} …Run Code Online (Sandbox Code Playgroud) 如何使用Observable.bindCallback()返回2个参数的回调,callback(results, status)?该示例使用google.maps.places以下API:
const service = new google.maps.places.PlacesService(map);
// service.nearbySearch(request, callback);
function callback(results, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
createMarker(results[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
const handleError = err=>console.error(error);
const nearbyAsObservable = Observable.bindCallback(service.nearbySearch)
nearbyAsObservable(request)
.subscribe(
(results,status)=>{
if (status!="OK") handleError(results);
callback
}
, handleError
)
Run Code Online (Sandbox Code Playgroud)
但我不确定以下几点:
1)最好的做法是从next处理程序中"抛出"错误并在处理程序中捕获它error,或者只是调用方法handleError()?
2)我收到Cannot read property 'nearbySearch' of undefined(…)错误.但是当我打电话给const nearbyAsObservable = Observable.bindCallback( service.nearbySearch.bind(service) …
我经常发现自己使用内联初始化(见下面的例子),特别是在我不知道哪个case循环会命中的switch语句中.我发现它比if语句更容易阅读.
但这是一种好的做法还是会产生副作用或性能受损?
for (var i in array) {
var o = o ? o : {}; // init object if it doesn't exist
o[array[i]] = 1; // add key-values
}
Run Code Online (Sandbox Code Playgroud)
是否有一个很好的网站去获取编码风格的提示?
此标记在桌面浏览器上运行良好
<form class="form-inline" action="/action/sign-me-up" method="post" onsubmit="return false;">
<input type="email" placeholder="Email" class='email' required title="Join our email list">
</form>
Run Code Online (Sandbox Code Playgroud)
如果我在输入[type = email]中提交没有有效电子邮件的表单,我会收到一个说"请填写此字段"的弹出窗口,表单不会提交.
但是,在ipad上,我确实在用户输入电子邮件时获得了实时验证(红色边框),但是如果他们点击提交,我就不会得到弹出窗口.
有一个简单的解决方法,还是我需要使用jquery插件?
我想转移到GraphicsMagick,因为我只是调整大小和旋转照片,我听说它快了一点.但它不直接采用-auto-orient选项.有没有其他方法可以有效地做到这一点?Imagemagick convert -auto-orient选项将读取EXIF方向标记,相应地旋转,然后将EXIF标记重置为orientation = 1.
请参阅:http://www.imagemagick.org/script/command-line-options.php?ImageMagick = 80iu7ek6jb638dl2kin7n3v4d5#auto-orient
我想为每个调用特定页面的渲染函数去抖 - 渲染不同的页面将单独去抖。memoize 函数应该可以解决问题,但它无法正常工作。
var renderPage_underscore = function(pageNo){
var debouncer = _.memoize(
// memoize function
_.debounce(
// debounced function
function () {
// Do renderPage() work here
document.getElementById("underscore").innerHTML +=
'<br />' + pageNo + '@' + new Date().getTime();
},
1000, // delay
true
),
// memoize hash function
function (pageNo) {
return pageNo;
}
);
return debouncer(pageNo);
};
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?http://jsfiddle.net/Zq8Wd/1/
我想要的以后做什么Observable/ subscribe完成.我正在改变方法中的Input属性subscribe( onNext ),但从ngOnChanges不触发.
我应该做些什么呢?
import { Component, EventEmitter,
OnInit, AfterViewInit, OnChanges, SimpleChanges,
Input, Output
} from '@angular/core';
@Component({
templateUrl: 'myTemplate.html'
, providers: [ NamesService ]
})
export class MyPage {
@Input() names: any[];
constructor( public namesSvc: NamesService) {}
ngOnInit() {
this.getNames$()
}
getNames$() : void {
this.nameService.get().subscribe(
(result)=>{
this.names = result;
console.log(`getNames$, names=${this.names}`);
// I could doSomething() here, but it doesn't seem like the correct place
// doSomething()
}
, …Run Code Online (Sandbox Code Playgroud) angular ×4
javascript ×3
typescript ×3
acl ×1
cakephp ×1
coding-style ×1
imagemagick ×1
ios ×1
ipad ×1
permissions ×1
php ×1
rxjs ×1
rxjs5 ×1
validation ×1