小编wir*_*uma的帖子

使用GroovyShell作为"表达式计算器/引擎"(或:如何重用GroovyShell)

GroovyShell在我的程序中使用"表达式评估器/引擎".它接受两个输入:(a)一个或多个init脚本(b)用户定义的脚本.然后两者在运行时连接成大块脚本(文本)并提供给shell.

String initScripts = getFromDB()
String userScript = getFromUser()

def shell = new GroovyShell()
output = shell.evaluate(initScripts + userScript)
Run Code Online (Sandbox Code Playgroud)

上面的代码将在循环中运行,其中的内容userScript将有所不同.

到目前为止,initScripts仅包含def $yyyy = new Date().format('yyyy')可能在userScript(例如print "$yyyy 001")中引用的变量定义(例如).

有没有更有效的方法呢?(例如重用shell,怎么样?)因为现在它非常慢.

编辑: Groovy是必须的.请不要推荐其他脚本引擎.

编辑:我在想GroovyShell是否可以这样做(伪代码):

def shell = new GroovyShell()
shell.evaluate(initScripts)

for each userScript in DB {
    shell.put(userScript )
    def result = shell.evaluateThat()
    println "Result is $result"
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?(上次我用谷歌搜索它是不可能的,但我希望我错了)

groovy groovyshell

9
推荐指数
1
解决办法
9323
查看次数

在AngularJS控制器之一中延迟加载外部JavaScript

我的一些路线需要外部JS的功能.我不想一次性加载它们,因为这些JS仅在某些路径中需要(例如,/upload需要一些JS用于照片上传,/photos需要另一个JS用于灯箱,/funny需要JS用于动画的东西等).

懒惰加载那些外部JavaScripts的最佳做法是什么?

这些路由可以多次访问(例如,用户可以去/upload,然后/photos/upload重新)

angularjs

9
推荐指数
1
解决办法
5297
查看次数

在underscore.js模板中使变量可选

我有这个代码:

_.templateSettings = {interpolate : /\{\{(.+?)\}\}/g};

var _d = _.template($('#_d').html());

$.get('/foo', function(data) {
    $('#output').html(_d(data));
});
Run Code Online (Sandbox Code Playgroud)

并在HTML中:

<div id="_d">
    {{name}} {{phone}}
</div>
<div id="output"></div>
Run Code Online (Sandbox Code Playgroud)

/foo返回类似的东西{"name":"joe","phone":"12345"},但有时它没有phone简单的返回{"name":"joe"},这将阻止模板评估,因此没有任何内容被打印出来output.如何使变量可选?

编辑: /foo我无法控制

javascript templates underscore.js

8
推荐指数
2
解决办法
5171
查看次数

在 Vue/Quasar SSR 项目中创建 API

我想创建一个可以由应用程序本身(无论是“ajax”还是服务器渲染)和其他客户端(例如移动应用程序)调用的 API。我在谷歌搜索“Quasar REST API”时发现的大多数文章都在谈论如何访问外部 API,这不是我的情况。

我的理解是修改src-ssr/extension.js

module.exports.extendApp = function ({app, ssr}) {
    app.get('/api/bla', (req, res) => {
        res.send('something')
    })
}
Run Code Online (Sandbox Code Playgroud)

并确保port内部src-ssr/index.js

const
    ssr = require('../ssr'),
    extension = require('./extension'),
    app = express(),
    port = process.env.PORT || 8888
Run Code Online (Sandbox Code Playgroud)

匹配中的值quasar.conf.js

    devServer: {
        https: false,
        open: false,
        port: 8888,
    },
Run Code Online (Sandbox Code Playgroud)

项目构建并成功运行,但http://localhost:8888/api/bla一直在浏览器中加载。我想念什么?

vue.js quasar-framework

7
推荐指数
1
解决办法
338
查看次数

InflateException:为VectorDrawableCompat填充类ImageView时出错

VectorDrawableCompat 终于进入了SDK 23中的支持库.但它似乎没有用,或者我可能错过了一些东西.

drawable/mypic.xml:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="64dp"
android:width="64dp"
android:viewportHeight="600"
android:viewportWidth="600" >
<group
    android:name="rotationGroup"
    android:pivotX="300.0"
    android:pivotY="300.0"
    android:rotation="45.0" >
    <path
        android:name="v"
        android:fillColor="#000000"
        android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
</group>
</vector>
Run Code Online (Sandbox Code Playgroud)

fragment_bla.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/mypic"
    android:scaleType="centerCrop" />

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

此代码适用于Lollipop,但不适用于KitKat.我错过了什么?


例外:

09-06 14:26:53.637  31820-31820/com.bla E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.bla, PID: 31560
android.view.InflateException: Binary XML file line #7: Error inflating class android.widget.ImageView
        at android.view.LayoutInflater.createView(LayoutInflater.java:623)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:672)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
        at …
Run Code Online (Sandbox Code Playgroud)

android android-vectordrawable

6
推荐指数
1
解决办法
9969
查看次数

Backbone.js - 暂时禁用(事件)视图

TL; DR如何临时禁用View以便我可以安全地加载另一个View,然后安全地关闭加载的View以返回到原始View?

我有以下场景:

  1. 用户打开/search哪些加载SearchView.
  2. 用户单击按钮以执行搜索.
  3. 里面的集合SearchView充满了数据,UI被更新以反映出来.
  4. 用户单击结果项.
  5. SearchView被禁用(只需要禁用events?).
  6. ItemView 已加载,显示项目详细信息.
  7. 用户单击按钮关闭ItemView.
  8. SearchView 重新启用.

实现第5点和第8点的最佳方法是什么?我想调用SearchView.unbind()(第5点)和SearchView.bind()(第8点).

额外奖励:如果解决方案是堆栈式的,那会更好.即视图A加载视图B,可以加载视图C.当视图C关闭时,视图B恢复,等等.

javascript javascript-events backbone.js backbone-events

5
推荐指数
1
解决办法
4102
查看次数

在 create-react-app 中禁用 WebSocket

我刚刚开始使用 create-react-app,我发现在控制台中看到 WebSocket 错误很烦人(并且 Chrome 加载指示器显示的时间更长)。也许有一天我会需要 WebSocket,但现在我只想禁用它。我怎么做?

websocket reactjs create-react-app

5
推荐指数
1
解决办法
5293
查看次数

获取 TextFormField 的 InputDecoration 标签的默认主题

我需要创建一个位于TextFormFields旁边的自定义小部件,因此我必须设置其标签的样式以匹配TextFormField的标签样式。

这不起作用:

Theme.of(ctx).inputDecorationTheme.labelStyle
Run Code Online (Sandbox Code Playgroud)

因为,根据其文档:

如果为 null,则默认为从输入字段的基本 [TextStyle] 和当前 [Theme] 派生的值。

问题是,我不知道如何获得这种基本风格。

flutter

5
推荐指数
1
解决办法
783
查看次数

Flutter TextField,如何在文本字段内部和上方为标签使用不同的样式

我有以下几点TextField

TextField(
    decoration: InputDecoration(
        labelStyle: TextStyle(
            color: I_WANT_TO_CHANGE_THIS,
        ),
        labelText: widget.label,
    ),
);
Run Code Online (Sandbox Code Playgroud)

如何更改颜色,以便当它位于文本字段内(提示)时为灰色,而当它浮动在文本字段上方(被聚焦)时为黑色。

flutter flutter-layout

5
推荐指数
1
解决办法
1万
查看次数

Flutter go_router:重定向后恢复导航(例如登录)

我有一条路线/authenticated/page,只有用户登录后才能查看。

\n

go_router 的官方重定向示例展示了如何执行此类“登录门”,但它重定向到/.

\n

重定向(例如登录)后如何恢复导航?IE:

\n

/\xe2\x86\x92 单击链接到/authenticated/page\xe2\x86\x92 被登录页面阻止 \xe2\x86\x92 成功登录 \xe2\x86\x92 打开/authenticated/page

\n

flutter flutter-go-router

5
推荐指数
1
解决办法
1547
查看次数