問題がshowEdit()
機能です。あなたのフィドルから
あなたが持っている:startEdit
とstartAdd
のように定義されている
function showEdit() {
return $scope.startEdit && !$scope.startAdd;
}
は:
function startAdd() {
$scope.addBookmark = true;
$scope.editBookmark = false;
}
function startEdit() {
$scope.editBookmark = true;
$scope.addBookmark = false;
}
をすると、あなたのNG-場合の通話
showEdit()
それはしかし
$scope.startEdit && !$scope.startAdd;
、$scope.startEdit
戻りますと$scope.startAdd
は関数なので、真実になります(つまり、evaluateat eからtrue
へのブール式)。したがって、ブール式は常にfalse
と評価されます(DIVは非表示のままです)。
は、下記を参照してください:あなたがいずれかの関数を呼び出すまたはブール式を評価すると、概念的に何かが欠けているよう
$scope.startEdit && !$scope.startAdd;
true && !true
true && false
false
に見えます。
JavaScript関数を呼び出す場合は、ng-if="showEdit()"
ブロックと同じように、関数の名前にかっこを付ける必要があります。 、あなたはまだしかし、startEdit()
とstartAdd()
としては何も返さない、問題を抱えていると思います
function showEdit() {
return $scope.startEdit() && !$scope.startAdd();
}
:$scope.showEdit()
がstartAdd()
とstartEdit()
を呼び出すことを意図している場合
は同様に、あなたはこのような何かを行う必要がありますしたがってundefined
と評価されます。
上記のようにshowEdit()
関数を編集し、startEdit()
とstartAdd()
にブール式を返すと、良い結果が得られます。
あなたはフィドルでそれを見ることができます。これはコード: \t \t 'function showEdit(){ \t \t \t return $ s cope.startEdit &&!$ scope.startAdd; \t \t ' – paolopolix
ここで、init値は、 '$ scope.startEdit = startEdit'、startEditはどこに定義されていますか? –
関数は値を返さないので、常にfalseになります。 –