我在gulp文件中使用browser-sync(https://github.com/shakyShane/browser-sync)进行开发.我想在我的角应用程序中使用html5mode.对于该服务器,需要将多个url模式路由到单个html文件.暂存和生产服务器已经这样做但我也想在开发期间启动并运行它.
以下是我运行browser-sync服务器的方法(部分gulpfile.js):
gulp.task('serve', function () {
browserSync.init(null, {
server: {
baseDir: [APP_PATH]
}
});
// watch only for app specific codes;
...
});
Run Code Online (Sandbox Code Playgroud)
为了更清楚,在我的app js我指示angular使用html5mode进行路由:
$locationProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)
在我的APP_PATH中,我有一个index.html在访问browser-sync服务器时提供的服务.我需要的是browser-sync为每个路径提供这个单个文件.
因此,例如,如果我尝试/users/2从根路径开始到达路径,一切都很好; 然而,如果我刷新页面或尝试/users/2直接到达,browser-sync告诉它找不到合适的文档 - 这一切都很好,可以理解,但我想知道是否有任何方法可以告诉browser-sync内置服务器只提供一个文件.如果没有,有人可以建议其他选择吗?我应该只运行快速服务器并browser-sync通过它告诉代理吗?
所以我想使用fetch API,这很好,但是用它做的所有请求都属于Google Chrome中的"其他"部分.我更喜欢那些在XHR部分.
这是http.js我用于这些请求的服务.
import 'whatwg-fetch'
import Auth from './Auth';
import Url from 'url-parse';
const API_URL = process.env.API_URL
const http = {
get: get,
getAuthed: getAuthed,
post: post,
postAuthed: postAuthed,
getDefaultHeaders: getDefaultHeaders,
getApiUrl: getApiUrl,
}
window.http = http
export default http
function post(url, data, extraHeaders, opts) {
extraHeaders = extraHeaders || {}
opts = opts || {}
let request = performRequest(url, {
method: 'POST',
headers: mergeHeaders(getDefaultHeaders(), extraHeaders),
body: JSON.stringify(data),
})
if (opts.returnRawRequest) {
return request
} …Run Code Online (Sandbox Code Playgroud) 我使用SDWebImage在图像缓存UICollectionView在我的iOS应用.
一切都很好,但是,当用户在集合视图上快速滚动时,在用缓存图像替换占位符之前总是有一点暂停.我相信这是由于缓存检查.为了获得更好的用户体验,我希望单元格在实际缓存图像后显示正确的图像而不是占位符.如果我可以获取缓存图像的本地(设备)文件系统路径并将其存储在Show实例中,并使用它(如果存在)而不是我的占位符,这将很容易.
有可能将成功块传递给setImageWithURL方法但是,它获得的唯一参数是UIImage实例(实际上在master分支中还有一个名为cached的BOOL变量也被传递).那么 - 是否有可能直接从UIImage实例获取图像的文件系统路径?或者我应该修改SDWebImage,以便将该信息传递给缓存实例?或者有没有更好的方法来实现我之前描述的目标?
我的Show类有imageURL,这里是show cell使用SDWebImage的方法:
#import "ShowCell.h"
#import <SDWebImage/UIImageView+WebCache.h>
@implementation ShowCell
@synthesize imageView = _imageView;
@synthesize label = _label;
@synthesize show = _show;
- (void)setShow:(Show *)show
{
if (_show != show) {
self.label.text = show.title;
if (show.imageURL) {
[self.imageView setImageWithURL:[NSURL URLWithString:show.imageURL]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
}
_show = show;
}
}
@end
Run Code Online (Sandbox Code Playgroud) 在我的控制器上,我创建了一个负责初始化范围状态的函数.然后它ng-init就像这样被调用:... ng-init="init(value)"where value是全局范围内的一些变量.问题是 - 它不起作用.角度是否允许传递变量?是否ng-init只在没有任何上下文的情况下进行评估,我必须准备一个字符串?