В настоящее время я пытаюсь отправить время и дату с php на мой угловой контроллер с помощью ng-click.
$time is a date
$today is a datetime
Может кто-нибудь объяснить мне, почему это работает
<button ng-click="getClickInfo('<?php echo $time; ?>', '<?php echo $today; ?>')";</button>
Но когда я пытаюсь достичь такого же результата в эхо, как это, это дает мне разные и неправильные результаты
<?php echo '<button ng-click="getClickInfo(' . $time . ', ' . $today . ')";></button>'; ?>
Я попытался найти в Интернете решение, но я не мог найти тему об этом. Надеюсь, кто-то может объяснить мне, что происходит в этом сценарии. Перенаправление на любые статьи по этой теме было бы очень полезно для меня.
Вывод:
01:00 // incorrect output
01/01/1970 // incorrect output
20.30 // desired output
22-04-2016 // desired output
Вы должны указать аргументы функции javascript, иначе вы получите непредсказуемые результаты. Ctach здесь заключается в том, что атрибут HTML ng-click
должен быть заключен в двойные кавычки, а значение атрибута (ваша функция) не должно содержать двойные кавычки, поскольку оно нарушит HTML
Кроме того ;
не требуется, вы помещаете его вне значения атрибута HTML ng-click
, что неверно HTML
Здесь исправление, обратите внимание, что кавычки экранируются с обратной косой чертой внутри строк PHP:
<?php echo '<button ng-click="getClickInfo(\'' . $time . '\', \'' . $today . '\')"></button>' ?>
Здесь более читаемый способ сделать это, я бы рекомендовал этот подход:
<?php echo '<button ng-click="getClickInfo(' . "'$time', '$today'" . ')";></button>' ?>