Во втором случае вы назначаете x+y
на x
. В первом случае второй результат (x+y
) присваивается y
Вот почему вы получаете разные результаты.
После редактирования
Это происходит потому, что в заявлении
x,y = y,x+y
оцениваются все переменные в правой части и затем сохраняются в левых членах. Итак, сначала приступим к правильному члену, а второй - к левому элементу.
Во втором утверждении
x = y
y = x + y
yo сначала оценили y
и назначили его x
; Таким образом, сумма x+y
эквивалентна сумме y+y
, а не x+x
, которая является первым случаем.
Я бы посоветовал использовать ng-change, чтобы зафиксировать изменение состояния флажка, и ng-if, чтобы отобразить всплывающее окно, когда флажок возвращает значение true. Я собрал быстрый пример, который должен помочь: https://codepen.io/anon/pen/xBEvOq
HTML:
<div ng-app="myApp">
<div ng-controller="exampleCtrl">
<input title="{{(disabledStatus?'disabledReason' : '')}}"
ng-disabled="displayPopup" type="checkbox" ng-model="checkBox"
ng-change="evaluate(checkBox)"/>
<div ng-if="displayPopup">Insert Popup Code Here!</div>
</div>
</div>
JS: [115 ]
var app = angular.module('myApp', []);
app.controller('exampleCtrl', function($scope) {
$scope.evaluate = function(displayPopup) {
$scope.displayPopup = displayPopup;
$scope.disabledStatus = false;
if($scope.displayPopup === true){
$scope.disabledStatus = true;
$scope.disabledReason = "You can make up reason here";
}
};
});
Вы должны использовать ng-change
с someInput
и соответственно скрывать / показывать подсказку.