繁体   English   中英

angularjs干扰了回显php变量

[英]angularjs interferes with echoing php variable

我试图拉一个php变量($ purpose)并在选择选项上显示它。 我拥有的代码(见下文)仅在我取出元素属性ng-model =“ purpose”时有效。 如果我将ng-model留在原处,则select选项显示目的,表明php echoinng没有通过。 似乎回显php变量并使用angularjs相互冲突。 有人遇到这个问题吗? 有解决方法吗?

<select id="purpose" class="form-control custom-select" name="purpose" value="<?php if(isset($purpose) or !empty($purpose)) {echo $purpose;}?>" ng-model="purpose" autocomplete="on" required/>
  <option <?php if($purpose == "") echo 'selected';?> value="">Purpose</option>
  <option <?php if($purpose == "1030") echo 'selected';?> value="1030">1Exchange</option>
  <option <?php if($purpose == "1040") echo 'selected';?> value="1040">Non-exchange</option>
  <option <?php if($purpose == "1050") echo 'selected';?> value="1050">Financing</option>
</select>

使用ng-model时不要使用value属性 只需初始化一个变量用途并为其分配PHP变量即可。 如下所示:

<select ng-init="purpose = <?php if(isset($purpose) or !empty($purpose)) {echo $purpose;}?>" id="purpose" class="form-control custom-select" name="purpose" ng-model="purpose" autocomplete="on" required/>
      <option <?php if($purpose == "") echo 'selected';?> ng-value="">Purpose</option>
      <option <?php if($purpose == "1030") echo 'selected';?> ng-value="1030">1Exchange</option>
      <option <?php if($purpose == "1040") echo 'selected';?> ng-value="1040">Non-exchange</option>
      <option <?php if($purpose == "1050") echo 'selected';?> ng-value="1050">Financing</option>
    </select>

虽然您可以使用这种样式使其工作,但建议使用JSON从后端到角度填充数据。

<?php
$purpose_arr = array(
  "1030" => "1Exchange",
  "1040" => "Non-exchange",
  "1050" => "Financing"
);

echo "<script> var purpose='" + json_encode($purpose_arr) + "'; </script>"
?>

html:
<select id="purpose" class="form-control custom-select" name="purpose" ng-model="purpose" autocomplete="on" required
    ng-options="value as key for (key, value) in purpose" />
    <option value="">Purpose</option>
</select>

controller:
$scope.purpose = purpose;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM