小编ps0*_*604的帖子

Angular:$ broadcast和$ emit按值或引用发送消息对象?

给出以下代码:

var msg = {
  field1: val1,
  field2: val2,
  // more fields
};

$scope.$broadcast("EventName", msg);
Run Code Online (Sandbox Code Playgroud)

事件使用者收到指向msg或复制的指针?

angularjs

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

在ScalaTest中注入PlaySlick数据库连接

我有以下使用PlaySlick连接到数据库的DAO.该类有一个read我需要使用ScalaTest测试的方法.我的问题是我不知道如何模拟DatabaseConfigProviderUsersDAO类中注入它并测试read方法.这是要测试的类:

class UsersDAO @Inject()(@NamedDatabase("mydb") 
          protected val dbConfigProvider: DatabaseConfigProvider)
          extends with HasDatabaseConfigProvider[JdbcProfile] {

   import driver.api._

   val db1 = dbConfigProvider.get[JdbcProfile].db

   def read (sk: Int) = {
      val users = TableQuery[UserDB]
      val action = users.filter(_.sk === sk).result
      val future = db1.run(action.asTry)
      future.map{
        case Success(s) => 
          if (s.length>0)
            Some(s(0))
          else
            None
        case Failure(e) => throw new Exception ("Failure: " + e.getMessage)
      }
   }

}
Run Code Online (Sandbox Code Playgroud)

这是我尝试编写测试:

class UserDAOTest extends PlaySpec with OneAppPerSuite  {

  implicit override lazy val …
Run Code Online (Sandbox Code Playgroud)

scala scalatest playframework slick play-slick

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

AngularJS ui-router:reload:true也重新加载父状态

在这个插件中,你有两个ui-router状态,父母和孩子.通过单击链接调用子项时,由于它具有选项reload: true,因此始终会重新加载.这很好,但问题是父状态也被重新加载.尝试多次单击"填充11"链接,您将看到父时间戳也发生变化.

我怎样才能重新装载孩子?

使用Javascript:

var app = angular.module("app", ['ui.router']);

app.config(function($stateProvider, $urlRouterProvider) {

  $urlRouterProvider.otherwise("/");

  $stateProvider
    .state('state1', {
          templateUrl: 'state1.html',
          controller: function($scope) {

            $scope.theTime1 = Date.now();

          }
    })
    .state('state1.state11', {
          templateUrl: 'state11.html',
          controller: function($scope) {

               $scope.theTime11 = Date.now();

         }
    });

});
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui-router

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

使用Javascript正则表达式检测字符串的结尾或结尾

我正在尝试找到Javascript正则表达式来检测关键字(任何字符),后跟新行或字符串结尾.这是我的尝试:

.+(?:\n|$)
Run Code Online (Sandbox Code Playgroud)

我不确定它$可以用于或条件.有什么想法吗?

UPDATE

我试图用正则表达式检测的是关键字后跟(1)另一个关键字,或(2)什么都没有(因此新行或字符串结尾)

例如:字符串"aaa"就在新行之前,它将匹配; 字符串末尾的字符串"bbb"也是匹配的.

javascript regex

8
推荐指数
1
解决办法
7359
查看次数

在SAP HANA + Hibernate中选择抛出错误:`不支持com.sap.db.jdbc.CallableStatementSapDBFinalize的方法解包

我有下表:

CREATE column TABLE banks (
  sk tinyint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  code varchar(10) DEFAULT NULL,
  name varchar(100) DEFAULT NULL,
  version smallint DEFAULT NULL,
  PRIMARY KEY (sk)
);
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码选择表的行(在Scala中):

import scala.collection.JavaConverters._

object Test extends App {

    val session = HibernateUtil.sessionFactory.openSession        
    val q = session.createQuery("from BankHib ") 
    val list2 = q.list   // <-- code breaks here

    session.close
 }
Run Code Online (Sandbox Code Playgroud)

使用以下实体定义:

@Entity
@Table(name = "banks")
class BankHib {

    @Id
    var sk: Int = _

    var code: String = _
    var …
Run Code Online (Sandbox Code Playgroud)

hibernate scala hana

8
推荐指数
1
解决办法
215
查看次数

使用 Puppeteer 下载文件时 Chrome 下载错误

我有一个显示页面的应用程序,用户单击一个按钮,然后下载一个 CSV 文件。我想用 Puppeteer 运行它。

问题是 CSV 下载为空且有错误。headless真假都会发生这种情况。页面加载完成,我增加了超时时间,但它仍然失败。可能是什么问题?

在此处输入图片说明

const puppeteer = require('puppeteer');

(async () => {
    
    const browser = await puppeteer.launch({
       headless: false
    });

    const page = await browser.newPage();
    await page.goto('http://localhost:4400/login', { waitUntil: 'networkidle2' });    
    
    await page._client.send('Page.setDownloadBehavior', {
        behavior: 'allow',
        downloadPath: './',
    });

    await page.waitForSelector('#run-and-export');
    await page.click('#run-and-export');
  
    // file-downloaded is turned on when the file finished downloading (not to close the window)
    await page.waitForSelector('#file-downloaded', { timeout: 120000 }); 

    await browser.close();
    
})();
Run Code Online (Sandbox Code Playgroud)

应用程序中生成要下载的文件的代码是一个 Angular 服务:

@Injectable({ 
    providedIn: 'root' 
}) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js google-chrome-headless puppeteer

8
推荐指数
1
解决办法
1724
查看次数

RESTEasy + Jackson:如何排除响应中的字段?

我正在将我的Java Web应用程序从基于servlet的Jrac-RS迁移到JAX-RS.因为我正在使用Jboss,所以我也会使用(默认情况下)RESTEasy.

在我的servlet中,我使用Jackson来序列化/反序列化JSON; 杰克逊允许我以编程方式过滤字段的包含/排除,例如:

ObjectMapper mapper = new ObjectMapper().setVisibility(JsonMethod.FIELD, 
Visibility.ANY);

String[] ignorableFieldNames = { "id", "name" };

FilterProvider filters = new SimpleFilterProvider().
addFilter("f123",SimpleBeanPropertyFilter.serializeAllExcept(ignorableFieldNames));

mapper.filteredWriter(filters).writeValueAsString(object);
Run Code Online (Sandbox Code Playgroud)

RESTEasy提供了Jackson的支持,但它似乎是透明地嵌入到开发人员中,因此我无法进入低级别来包含/排除字段.这可行吗?

jax-rs resteasy jackson

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

在 Typescript 中动态创建对象

下面的 Javascript 代码打印{ x: 1 }

var foo = 'x';
var a = {};
if (foo == 'x')
    a.x = 1;
else
    a.y = 2;
console.log(a);
Run Code Online (Sandbox Code Playgroud)

同样,我需要在 Typescript 中动态构建一个对象,换句话说,当我创建对象时,我不知道它的成员是什么。

我在打字稿中试过这个,但它不起作用:

let foo = 'x';
let a = {};
if (foo == 'x')
    a.x = 1;    //  <-- transpilation fails here
else
    a.y = 2;    //  <-- transpilation fails here 
console.log(a); 
Run Code Online (Sandbox Code Playgroud)

错误是Property 'x' does not exist on type '{}'.是否可以在 Typescript 中动态创建对象?

typescript

7
推荐指数
2
解决办法
5347
查看次数

有没有办法在Oracle / JDBC中区分DATE和TIMESTAMP?

我有一个Java应用程序,用户可以select在屏幕上构建SQL 语句。一旦他们输入select,我将使用JDBC分析列类型。

对于Oracle,DATE类型的JDBC等效项是java.sql.Types.Timestamp,因为DATE包括时间。

问题是我需要根据列类型设置结果集的格式。如果是DATE,则需要格式化value YYYY-MM-DD。如果是TIMESTAMP,则需要格式化该值YYYY-MM-DD HH:MM:SS

我需要在JDBC中区分DATE和TIMESTAMP结果。有没有办法做到这一点?

样例代码:

        String sql = "select date_col, timestamp_col from some_table";
        ResultSet rs = stmt.executeQuery(sql);
        ResultSetMetaData meta = rs.getMetaData();
        int count = meta.getColumnCount();

        for (int i=1;i <= count;i++) {
            int type = meta.getColumnType(i);
            System.out.println(type);
        }
Run Code Online (Sandbox Code Playgroud)

这将打印两次93,即java.sql.Types.Timestamp

CREATE TABLE "DB1"."SOME_TABLE" 
   ("SOMENUM" NUMBER(9,0), 
    "DATE_COL" DATE, 
    "TIMESTAMP_COL" TIMESTAMP (6), 
    "ACCOUNT" NUMBER(9,0), 
    "BALANCE" FLOAT(126)) 
Run Code Online (Sandbox Code Playgroud)

注意:我正在Wildfly 14上运行它

我试图将sql Connection oracle.sql强制转换为OracleConnection(以获取类型),并且Wildfly引发:

org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8无法转换为oracle.jdbc.OracleConnection

java oracle jboss jdbc wildfly

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

使用 Fill in ADOMD 限制检索的行数

以下 C# 代码运行 DAX 语句并检索数据表。这工作正常,但现在我需要从数据库中检索最多 N 行。有没有办法限制Fill函数返回的行数?如果没有,我如何检索前 N 行?请注意,我需要为任何 DAX 语句保留此泛型,因此您不应更改 DAX 本身。另外,我不想检索所有数据然后取前 N 行,因为数据可能太大。

    public static DataTable runDaxStatement(int maxRows) {

        var con = ConfigurationManager.ConnectionStrings["Default"].ConnectionString;
        AdomdConnection conn = new AdomdConnection(con);

        DataSet ds = new DataSet();
        ds.EnforceConstraints = false;
        AdomdCommand cmd = new AdomdCommand("evaluate customers", conn);
        AdomdDataAdapter da = new AdomdDataAdapter(cmd);
        da.Fill(ds);

        return ds.Tables[0];

    }
Run Code Online (Sandbox Code Playgroud)

c# adomd.net dax

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