声明angularjs控制器中的变量

时间:2015-04-09 10:28:53

标签: angularjs

我试图在我的controller.js中定义一个变量conn。

底部的代码,我得到了很多可怕的UI故障,所以我假设下面的代码是错误的。如果我尝试:

var conn;
conn.name = 'Fred';

我看起来像是NullPointer错误"无法设置属性' name'未定义"当我尝试设置conn.name。

如何定义我的变量?

var addDBConnControllerBase = app.controller('addDBConnControllerBase',
function($scope,$http,serviceFactory,$modal,$location,$log)
{
    $scope.saveDBConn = function()
    {
        var conn = {
            name,
            driverType,
            connectionString,
            userID,
            password
        };
        conn.name = $scope.addDBConnController.displayName;
        conn.driverType = $scope.addDBConnController.driverType;
        conn.connectionString = $scope.addDBConnController.connectionString;
        conn.userID = $scope.addDBConnController.userID;
        conn.password = $scope.addDBConnController.password;
        $log.debug('Saving db conn');
        $log.debug(JSON.stringify(conn));
    }
});

3 个答案:

答案 0 :(得分:4)

你需要刷你的javascript pronto!这样:

var conn;

是变量声明,而不是定义。在此声明之后,conn仍为undefined,因此您无法conn.name = ...。您必须在使用它们之前对其进行初始化:

var conn = {};
conn.name = ...

var conn = {
  name: ...
};

答案 1 :(得分:3)

var newAttrs = {};
newAttrs[nameOfProp] = valueOfProp;

试试这个!!!

在你的情况下,我认为这将是

var conn = {};
conn["name"] = 'Fred';

答案 2 :(得分:-1)

您应首先将变量 conn 定义为数组。喜欢以下。

var conn = [];
conn.name=$scope.addDBConnController.displayName;