以下代码通过服务读取,并在网页上显示特定"页面类别"(字符串)的"页面"对象列表.使用$ routeProvider.when()中的resolve对象属性,我可以推迟更新视图,直到新值准备就绪.
两个问题:
在要求新的页面列表时,我想显示一个加载图标.当从服务器读取时(如果应显示加载图标),如何检测(以非hackish方式)事件?我想我可以在服务中执行类似$('.pages-loading-icon').show()的操作,但是发现它太过于依赖于服务.
当新值准备就绪时,我希望旧的淡出淡出,新的淡入淡出.这样做的"角度"方式是什么?我曾尝试使用$ watch在控制器中执行此操作,但这会导致在淡出开始之前不久显示新值.
代码:
app.js:
$routeProvider.when('/:cat', { templateUrl: 'partials/view.html', controller: RouteCtrl, resolve: RouteCtrl.resolve});
Run Code Online (Sandbox Code Playgroud)
controllers.js:
function RouteCtrl($scope, $routeParams, pages) {
$scope.params = $routeParams;
$scope.pages = pages;
}
RouteCtrl.resolve={
pages: function($routeParams, Pages){
if($routeParams.hasOwnProperty('cat')){
return Pages.query($routeParams.cat);
}
}
}
Run Code Online (Sandbox Code Playgroud)
services.js: 读取的最后一页存储在currentPages中,其类别存储在lastCat中.
factory('Pages', function($resource, $q, $timeout){
return {
res: $resource('jsonService/cat=:cat', {}, {
query: {method:'GET', params:{cat:'cat'}, isArray:true}
}),
lastCat: null,
currentPages: null,
query: function(cat) {
var res = this.res;
if(cat != this.lastCat){
var deferred = $q.defer();
var p = res.query({'cat':cat}, function(){
deferred.resolve(p); …Run Code Online (Sandbox Code Playgroud) 我试图在Play 2.0框架中使用Squeryl ORB,但DB.getConnection()在初始化期间调用时我得到:
错误路径:路径参数:无效路径' - 无法找到defaultdb的数据源':路径表达式中不允许使用令牌:' - '(如果您真的需要,可以双引号此令牌)
数据库配置如下所示(conf/application.conf):
db.default.url="jdbc:postgresql://localhost/mydb?user=postgres&password=postgres"
db.default.driver=org.postgresql.Driver
db.default.jndiName=defaultdb
Run Code Online (Sandbox Code Playgroud)
并初始化:
object Global extends GlobalSettings {
override def onStart(app: Application) {
SessionFactory.externalTransactionManagementAdapter = Some(() =>
Some(new Session(
DB.getConnection("defaultdb", true),
new PostgreSqlAdapter)))
...
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?使用db.default.jndiName配置值作为参数值是否正确DB.getConnection()?
或者应该这样做?:
SessionFactory.concreteFactory = Some(() =>
Session.create(
java.sql.DriverManager.getConnection("jdbc:postgresql://..."),
new PostgreSqlAdapter))
Run Code Online (Sandbox Code Playgroud)
这是有效的,但后来我无法在模板中使用squeryl查询对象进行迭代,我希望可以使用它externalTransactionManagementAdapter.
我更正了以下内容:DB.getConnection("default", true)并删除了db.default.jndiName配置.有了这个,我能够获得并使用一个连接,但第二次getConnection()被调用,它会抛出SQLException: Timed out waiting for a free available connection.
我没有设法使用externalTransactionManagementAdapter,但concreteFactory效果很好 - 如下所述.
我正在尝试使用gradle 将android-swipelistview(https://github.com/47deg/android-swipelistview)导入我的Android Studio模块.不应该单独使用build.gradle配置吗?有没有人有配置文件来完成这项工作?
我在Android Studio中有两个模块.
主要是应用程序,Sub是库模块.Sub compile project(':Sub')在gradle脚本中从Main 引用.这在从Android Studio运行时有效.但是当从命令行运行时,gradlew说:
Could not create plugin of type 'LibraryPlugin'.
Caused by: java.lang.NoClassDefFoundError: org/gradle/api/artifacts/result/ResolvedComponentResult
Run Code Online (Sandbox Code Playgroud)
这是Main的build.gradle文件中的重要部分:
apply plugin: 'android'
buildscript {
repositories {
mavenCentral()
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
repositories {
mavenCentral()
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
}
task wrapper(type: org.gradle.api.tasks.wrapper.Wrapper) {
gradleVersion = '1.11'
}
android {
buildToolsVersion '19.0.3'
}
dependencies {
compile 'com.android.support:support-v4:13.0.+'
compile project (':Sub')
}
Run Code Online (Sandbox Code Playgroud)
Sub gradle文件或多或少相同,但有
apply plugin: 'android-library'
Run Code Online (Sandbox Code Playgroud)
而不是'android'
我已尝试使用gradle 1.9和1.10,但结果相同.
谁知道如何解决这个问题?
我有三个GWT模块,它们有一些共同的代码 - 通常是域类 - 并且还共享相同的服务器实例.我的第一个想法是像这样组织它:
app1/client/
app2/client/
app3/client/
server/
shared/
然后,这些模块将在其描述符中包含:
<source path = "client"/>
<source path = "../shared"/>
但似乎../shared路径不起作用.
这是要走的路,还是有更好的方法?
我正在测试Libgdx和Scene2d.我希望这个小程序能够显示一个标志,但它只画了一个黑屏.知道我错过了什么吗?
public class MyGame implements ApplicationListener {
private Stage stage;
@Override
public void create() {
stage = new Stage(800, 800, false);
Gdx.input.setInputProcessor(stage);
MyActor actor = new MyActor();
stage.addActor(actor);
}
@Override
public void render() {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}
@Override
public void dispose() {
stage.dispose();
}
@Override
public void resize(int width, int height) {
stage.setViewport(800, 800, false);
}
}
public class MyActor extends Actor {
Sprite sprite;
public MyActor() {
sprite = new Sprite();
sprite.setTexture(new Texture("data/libgdx.png"));
setWidth(sprite.getWidth());
setHeight(sprite.getHeight());
setBounds(0, 0, getWidth(), …Run Code Online (Sandbox Code Playgroud) 使用Android Studio/gradle时,我在哪里添加aidl文件?文件结构与eclipse有点不同:

我试图com.android.internal.telephony.ITelephony在所有三个级别添加,但它似乎没有编译:

我正在用mockito测试一个类.它包含以下方法:
add(Sortable s) List<Sortable> get()该类在内部对对象执行多项操作,并且它依赖于对Sortable对象进行排序.
问题是我在嘲笑Sortable,这使得compareTo()总是返回0.有没有办法制作具有原始Sortable compareTo()实现的Sorting模拟?或者还有其他方法可以解决这个问题吗?