Every App need a Root NgModel;
if you want to add feature NgModle,you can init it as AppModule.Then you import it into AppModule.
Example:
@NgModule({
providers: [
ActiveTitleService
],
imports: [
BrowserModule,
UserModule // Feature Module
],
declarations: [
AppComponent,
TitleComponent,
HighlightDirective
],
bootstrap: [ AppComponent ]
})
微信服务号
1.开启开发者配置之后,只能通过接口来自定义菜单;
2.需要把服务端的请求地址添加到开发者设置中的白名单里面,多个地址可以通过换行;
3.用户关注,取消关注,还有发送消息时都会返回数据给服务器端;
4.获取acces_token返回40164时,可以去看下是否把服务器地址加入了IP白名单,另外也可以重新生成ID和ScretKey,然后再去获取;
5.acces_token必须在服务端获取,二小时内有效,不要频繁获取;
6.菜单提示44002错误:检查请求是否正确;检查发送的json是否正确。
DefaultHttpClient socket error
1.超时问题,参照:http://blog.csdn.net/hengyunabc/article/details/22716911.解决方案是:为对应的httpclient设置超时即可.
httpClient = new DefaultHttpClient();
httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 2000);
httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 2000);
2. 句柄泄露(CLOSE_WAIT半连接关闭)
HttpClient容易忽视的细节——连接关闭,参照:http://seanhe.iteye.com/blog/234759
httpmethod.releaseConnection();
client.getConnectionManager().shutdown();
node 问题
1.安装brew之后,使用brew install node安装好之后,node -v一直无作用,解决办法:卸载brew,重新安装,安装好之后直接brew install node。
之前安装失败:在安装好brew之后,使用了brew update,brew doctor,brew link node。
node与ionic安装
node卸载:sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}
brew卸载:/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)”
brew安装:/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
环境变量:echo ‘export PATH=”/usr/local/sbin:$PATH”‘ >> ~/.bash_profile 或者touch .bash_profile open -e .bash_profile然后将export PATH=”/usr/local/sbin:$PATH添加进去保存。
命令行下:echo $PATH, 看看输出是什么,里面有没有 /usr/local/bin。
同上:ls -l /usr/local/bin | grep node, 看看node是否确实存在。
同上:ls -l /usr/local/bin/node。
ionic安装的时候:先sudo su 然后用 sudo npm install -g cordova ionic 安装.
如果cordova -v报错,sudo chmod 744 /Users/edutech/.config/configstore/cordova-config.json
ionic 元素高度,位置
1.可以通过document.getElementById(“attach_headerId”).scrollHeight;或者scrollWidth来获取元素的高度。
可以通过document.getElementById(“chapterId”).offsetLeft来获取上下偏移量。
如果元素不包含在
Xcode编译报错
错误The maximum number of apps for free development profiles has been reached.
1.卸载设备上之前安装的app重新build,看是否可行;
2.~/Library/MobileDevice/Provisioning\ Profiles/,前往该路径下,删除provisioning文件。在钥匙串中,删除生成的证书。重新打开项目编译。
cordova
1.ionic使用cordova插件时,如果你想修改插件的某个功能,可以在plugins下找到对应的源码,修改对应的平台。
注:iOS可以通过打开build之后的项目调试,在项目中修改插件源代码。修改完之后然后覆盖对应的文件(android:java文件,iOS:.h .m文件)。是否可以添加类(未尝试)
2.修改完插件之后,将之前build好的删除掉。重新跑一跑build流程。
3.可以自己创建新插件然后引人到自己项目中。
ionic2 build iOS
1.cordova build iOS;
2.cordova run iOS;
需要先将ios-deploy安装上去。
安装过程如果出错,可以到该目录下将ios-deploy文件夹删除之后,在用npm命令安装上去。
sudo npm install -g ios-deploy –unsafe-perm=true –allow-root
HTML
1.防止事件冒泡。就是给该元素添加点击事件,然后实现方法。
a.一个事件起泡对应触发的是上层的同一事件
特殊:如果two设置成双击事件,那么在你单击two的时候就会起泡触发one单击的事件
(双击包含单击)。
b.如果在click事件中,在你要处理的事件之前加上e.preventDefault();
那么就取消了行为(通俗理解:相当于做了个return操作),不执行之后的语句了。
c.e.stopPropagation()只要在click事件中,就不会触发上层click事件。