我试图在我的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));
}
});
答案 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;