我寫了下面的小角度的代碼片段:
HTML文件:
<body ng-controller="myCtrl">
<div class="container">
....
</div>
</body>
JavaScript文件:
app.controller('myCtrl', function($scope) {
$scope.white_sld = get_init_white_sld();
$scope.get_soldier_style = function is_soldier(loc) {
var sld_color = get_soldier_color(loc);
if (sld_color == "") {
return ""; // no soldier in this square
} else {
return {
'width': '80%', 'height': '80%', 'border-radius': '80%', 'background-color': sld_color,
'margin': 'auto auto', 'vertical-align': 'middle'
}
}
function get_soldier_color(loc) {
for (var i = 0; i < white_sld.length; i++) {
if ((loc[0] == white_sld[i][0]) && (loc[1] == white_sld[i][1])) {
return "white"
}
}
for (var i = 0; i < black_sld.length; i++) {
if ((loc[0] == black_sld[i][0]) && (loc[1] == black_sld[i][1])) {
return "black"
}
}
return ""; // no soldier found
}
}
});
function get_init_sld_line(x_loc, y_loc, color) {
var line_sld = [];
for (var i = 0; i < 4; i++) {
line_sld.push(new Soldier(x_loc + 2 * i, y_loc, color));
}
return line_sld;
}
function get_init_white_sld() {
var init_white_sld = [];
init_white_sld.push(get_init_sld_line(0, 0, "white"));
init_white_sld.push(get_init_sld_line(1, 1, "white"));
init_white_sld.push(get_init_sld_line(0, 2, "white"));
return init_white_sld;
};
我此代碼的問題在於「$ scope.white_sld = get_init_white_sld();」之後,$ scope.white_sld獲取ret函數get_init_white_sld()的urn值。但是,當它進入函數'is_soldier'時,$ scope.white_sld變成未定義的。我的問題是爲什麼以及如何解決它?
是什麼'''get_init_white_sld'''? – tymeJV
我將它添加到代碼片段 – CrazySynthax
'get_init_sld_line'什麼都不做。你聲明一個數組,然後推送它,然後對該數組做任何事情。你是不是忘記了'return'/ – tymeJV