小编mra*_*xus的帖子

在angular-ui-router中将信息从子状态传递到父状态

我正在使用ui-router构建一个angular-app,我有一个父视图和一个子视图.

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

    $urlRouterProvider.otherwise('/home');

    $stateProvider
        .state('home', {
            url: '/home',
            templateUrl: '/views/home/home.html',
            controller: 'HomeController'
        })
        .state('new-assignment', {
            url: '/new-assignment',
            templateUrl: 'new-assignment.html',
            controller: 'AssignmentController'
        })
            .state('new-assignment.new-client', {
                url: '/new-client',
                templateUrl: 'new-client.html',
                controller: 'ClientController'
            })
    ;

});
Run Code Online (Sandbox Code Playgroud)

使用子视图(以及其他内容)来创建新客户端.因此,通过在主视图中单击"创建新客户端".状态将更改为"new-assignment.new-client",并显示侧视图.

创建客户端时,我想转换回父视图"new-assignment",并传递有关刚刚创建的客户端的信息.

父视图仍然可以拥有自己的数据(用于创建赋值),并且自然不应该被触及.

我可以通过'$ stateChangeSuccess'事件检测到更改:

routerApp.controller('AssignmentController', function($scope, Assignment, Client, $log) {
    $scope.clients = Client.clients;
    $scope.$on('$stateChangeSuccess', function (e, toState, toParams, fromState, fromParams){
        $log.log(fromState.name + ' -> ' + toState.name);
        $log.log('toParams ');
        $log.log(toParams);
        $log.log('fromParams ');
        $log.log(fromParams);
    });
});
Run Code Online (Sandbox Code Playgroud)

我试图传递信息

$state.go('^', data);
Run Code Online (Sandbox Code Playgroud)

但没有成功......

但我不明白如何将数据传递给父视图.有任何想法吗?

javascript angularjs angular-ui-router

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

ES6默认和命名导出

我想了解命名和默认导出.我有一个看似基本的要求,我不明白如何设置.

我希望能够同时导入:

//app.js
import Mod from './my-module'
import { funcA, funcB } from './my-module'

console.log('A', Mod.funcA(), funcA()); // A a a
console.log('B', Mod.funcB(), funcB()); // A a a
Run Code Online (Sandbox Code Playgroud)

当我尝试时,我最接近的方法是:

//my-module.js
export function funcA() { return 'a'; };
export function funcB() { return 'b'; };

export default {funcA, funcB}
Run Code Online (Sandbox Code Playgroud)

我的麻烦是我不想重新索引默认导出中的每个函数.我只是想定义我的函数,然后确保它们被导出,所以我可以使用它们.

建议?或者我必须使用import * as Mod from './my-module';

javascript export ecmascript-6 es6-module-loader

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

node.js + postgres:"$ 1"或附近的语法错误

我无法理解npm包pg及其"动态语句".

我希望能够生成INSERT INTO语句,但我只得到语法错误

var pg = require('pg');
var connectionString = 'postgres://postgres@localhost/db';

pg.connect(connectionString, function(err, client, done) {
  if (err) { return console.error(err); }

  var queryConfig = {
    text: 'INSERT INTO users($1, $2, $3) VALUES($4, $5, $6);',
    values: ['username', 'firstname', 'lastname', 'ab', 'A', 'B']
  };

  client.query(queryConfig, function (err, result) {
    if (err) { return console.error(err); }
    done();
  });
});
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

{ [error: syntax error at or near "$1"]
  name: 'error',
  length: 84,
  severity: 'ERROR',
  code: '42601',
  detail: undefined,
  hint: undefined,
  position: '19', …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js

4
推荐指数
1
解决办法
4155
查看次数