我的范围不包含" notYetExistingArray"在生成时。
通过按钮,我想添加数组加上第一个条目。 然后每次按下相同的按钮都应该添加另一个条目。
不幸的是,我不清楚如何处理它。
目前我有:
<button type="button" ng-click="notYetExistingArray.unshift({})">
如果范围已包含对象&#34; notYetExistingArray&#34;类型array = []我可以轻松添加具有上述功能的条目。
有关如何做的任何建议吗?
答案 0 :(得分:1)
从ng-click
指令调用控制器函数,而不是尝试在标记中执行所有操作。它可以包括检查数组是否存在,并在需要时创建它。
<button type="button" ng-click="addThis(thing)">
在控制器中:
ctrl.addThis = function(thing) {
if (ctrl.myArray === undefined) {
ctrl.myArray = [];
}
myArray.unshift(thing);
};
请注意,我在此处使用controllerAs语法,因此ctrl
可能会$scope
。
答案 1 :(得分:0)
您可以在执行此操作之前初始化阵列,例如:
<button type="button" ng-init="notYetExistingArray=[]" ng-click="notYetExistingArray.unshift({})">
查看ng-init https://docs.angularjs.org/api/ng/directive/ngInit
的文档答案 2 :(得分:0)
一个好方法是在 public void newNum(View resetB){
TextView numOne = (TextView) findViewById(R.id.numOne);
TextView numTwo = (TextView) findViewById(R.id.numTwo);
TextView ans = (TextView) findViewById(R.id.ans);
Button reset = (Button) resetB;
Random rand = new Random();
int ranOne = rand.nextInt(50) + 1;
int ranTwo = rand.nextInt(50) + 1;
int ansNum = (ranOne/2) + ranTwo;
numOne.setText("" + ranOne);
numTwo.setText("" + ranTwo);
ans.setText("" + ansNum);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
newNum(resetB);
}
指令上绑定一个函数,该指令将执行测试以检查数组是否存在。
在控制器:
中ngClick
Html :
function foo(item) {
//if my array does not exist
if (!$scope.myArray) {
//create the array
$scope.myArray = [];
}
//Here, we can add some data to our array, we are sure that the array exist
$scope.myArray.unshift(item);
}
$scope.foo = foo;
随意查看Working Plunker