对象 #<Scope> 错误
Object #<Scope> Error
我正在我的控制器中调用以下函数:
try
{
alert('it works!');
$scope.insert('John', 'Doe');
}
catch(err)
{
alert('err=' + err);
}
$scope.insert = function(firstname, lastname) {
var query = "INSERT INTO people (firstname, lastname) VALUES (?,?)";
$cordovaSQLite.execute(db, query, [firstname, lastname]).then(function(res) {
console.log("INSERT ID -> " + res.insertId);
}, function (err) {
console.error(err);
});
}
当我 运行 它时,有时它可以工作并添加数据,有时我会收到以下错误:
err=TypeError: Object #<Scope> has no method 'insert'
我发现这个错误很常见,但我没有找到适用于这个示例的答案,因为它实际上有时插入有效。
看来我只是在声明后移动了 $scope.insert('John', 'Doe');
,现在我不再收到错误了:)。这是一个简单的修复!
由于您使用表达式来声明函数,$scope.insert()
在定义之前被调用,因此您需要在 try catch 块之前移动函数插入定义。
但是,如果您将插入函数定义为
function insert(firstName, lastName) { ... }
即使我们不改变它的顺序,函数 insert
也会在 try catch 块之前定义。
我正在我的控制器中调用以下函数:
try
{
alert('it works!');
$scope.insert('John', 'Doe');
}
catch(err)
{
alert('err=' + err);
}
$scope.insert = function(firstname, lastname) {
var query = "INSERT INTO people (firstname, lastname) VALUES (?,?)";
$cordovaSQLite.execute(db, query, [firstname, lastname]).then(function(res) {
console.log("INSERT ID -> " + res.insertId);
}, function (err) {
console.error(err);
});
}
当我 运行 它时,有时它可以工作并添加数据,有时我会收到以下错误:
err=TypeError: Object #<Scope> has no method 'insert'
我发现这个错误很常见,但我没有找到适用于这个示例的答案,因为它实际上有时插入有效。
看来我只是在声明后移动了 $scope.insert('John', 'Doe');
,现在我不再收到错误了:)。这是一个简单的修复!
由于您使用表达式来声明函数,$scope.insert()
在定义之前被调用,因此您需要在 try catch 块之前移动函数插入定义。
但是,如果您将插入函数定义为
function insert(firstName, lastName) { ... }
即使我们不改变它的顺序,函数 insert
也会在 try catch 块之前定义。