只需在输入字段输入时显示值(角度js)

时间:2015-07-25 23:41:08

标签: angularjs laravel

我对laravel和angular js很新。我想要做的是显示内部值为placeholder的范围,并且当用户输入任何值时将有输入字段,而不是该占位符,将在那里写入文本字段的新值。

<!DOCTYPE html>
<html>
 <head>
  <script data-require="angular.js@1.2.0-rc2" data-semver="1.2.0-rc2"   src="http://code.angularjs.org/1.2.0-rc.2/angular.js"></script>
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
  <script>
   function Controller($scope) {
     $scope.data = {
       company_name : ''
      };

     $scope.isEmptyCompany = function () {
        return company_name === ''; 
      }
  }
</script>
</head>
  <body>
   <div ng-app ng-controller="Controller">
      <input type="text" ng-model="data.company_name"/>
      <div class="company_name">
          <h1 class="left">
              <span ng-if="data.company_name === ''">
                  Placeholder
              </span>
              <span ng-if="data.company_name!==''">
                  {{data.company_name}}
              </span>
          </h1>
      </div>
     </div>
   </body>
</html>

显示此错误我不知道为什么会发生

Use of undefined constant data - assumed 'data' (View: C:\xampp\htdocs\laravel\app\views\user\user_admin_info.blade.php)

2 个答案:

答案 0 :(得分:2)

一种解决方案是在花括号之前加上@符号,如@Ben所述。但是当使用angular(恕我直言)时,我认为最好只使用.php个视图而不是.blade.php个视图,否则你必须在视图中包含@。其次,在角度特定的视图中,并不总是存在大量的服务器端模板。即使我们需要一些东西,我们也可以使用php的原生<?php ?>模板。

答案 1 :(得分:1)

Laravel正在处理您的{{ tag }}而不是Angular。你需要告诉Laravel忽略你的Angular标签:

@{{data.company_name}}

有关详细信息,请参阅Displaying Data下的“Blade&amp; JavaScript框架”。