Я попытаюсь представить интуитивное объяснение, которое каждый должен найти удобным. Если вы настаиваете на том, что мы можем попробовать более формальный подход.
В представлении комплемента двух, чтобы иметь уникальное представление нулевого элемента, мы жертвуем одним положительным элементом. В результате появляется дополнительное отрицательное число, у которого нет положительного зеркала.
Итак, учитывая 2 бита, мы получаем: {+1, 0, -1, -2}
, который будет представлен в двоичном формате как:
-2 10
-1 11
0 00
+1 01
Итак, мы можем думать о нуле в качестве зеркала. Теперь, учитывая целое число x, если мы хотим инвертировать его знак, мы можем начать с инвертирования всех битов. Этого было бы достаточно, если бы не было нуля между положительными и отрицательными. Но так как нуль делает сдвиг, в позитивах мы компенсируем это.
Два выражения, упомянутые в вопросе, делают эту компенсацию до ~(x-1)
и после ~x+1
инвертируют биты. Вы можете легко убедиться, что с помощью +1
и -1
в нашем примере с двумя битами.
А1:
<button ng-disabled="isNotReady">I'm a button</button>
Вы ищете ng-disabled
. Просто назначьте ему свойство из вашего контроллера. Когда это true
, элемент будет отключен. Заполните это свойство значением из серверной части.
Редактировать: В соответствии с вашими требованиями вы должны использовать:
$scope.disabilitaConvalida = function (flagInLavorazione) {
$scope.saldoNegativo = false;
if (flagInLavorazione === false) {
$scope.saldoNegativo = true;
}
}
И в своем шаблоне:
<button ng-disabled="saldoNegativo"></button>
<час> Оригинальный ответ: [ 117]
Вы устанавливаете в своем шаблоне:
<button ng-disabled="condition"></button>
И
$scope.condition = true
или false
в своем контроллере на основе переменной внутреннего интерфейса.