我有一个我从指令调用的作用域函数,在该作用域函数中我传递了一个sciopoe变量。范围变量在该函数中发生了变化。
<button ng-click="change(scope_variable)"></button>
控制器
$scope.change = function(var){
//some manipulations with var
}
在这种情况下,范围变量不会发生变化,只会更改var。我该怎么做才能更改范围变量本身。
编辑:
我传递的范围变量是一个数组,我所做的更改主要是从数组中排序,插入和删除值。
答案 0 :(得分:0)
// Easter calculation in swift after Anonymous Gregorian algorithm
// Also known as Meeus/Jones/Butcher algorithm
func easter(Y : Int) -> NSDate {
let a = Y % 19
let b = Int(floor(Double(Y) / 100))
let c = Y % 100
let d = Int(floor(Double(b) / 4))
let e = b % 4
let f = Int(floor(Double(b+8) / 25))
let g = Int(floor(Double(b-f+1) / 3))
let h = (19*a + b - d - g + 15) % 30
let i = Int(floor(Double(c) / 4))
let k = c % 4
let L = (32 + 2*e + 2*i - h - k) % 7
let m = Int(floor(Double(a + 11*h + 22*L) / 451))
let components = NSDateComponents()
components.year = Y
components.month = Int(floor(Double(h + L - 7*m + 114) / 31))
components.day = ((h + L - 7*m + 114) % 31) + 1
components.timeZone = NSTimeZone(forSecondsFromGMT: 0)
let cal = NSCalendar(calendarIdentifier: NSGregorianCalendar)
return cal.dateFromComponents(components)
}
println(easter(2014)) // "2014-04-20 00:00:00 +0000"
引用了var,但var没有引用范围。如果为var scope
分配新值,将保留对旧var的引用而不更新。如果scope
是对象或数组,则可以对其进行修改并查看var
中的更改。scope
。 var
是一个保留关键字,可能会产生误导。答案 1 :(得分:0)
您无需从视图中传递范围变量。您可以从控制器访问范围变量。
//In the view
<button ng-click="change('somevalue')"></button>
//In your controller
$scope.change = function(someVal){
$scope.someVar = someVal;
//some manipulations with someVar
}
答案 2 :(得分:0)
这样做怎么样:
//In the view
<button ng-click="change()"></button>
//In your controller
$scope.someArray = [1, 2, 3];
$scope.change = function(){
$scope.someArray.push(4);
}