我遇到了以下代码的奇怪问题..
每当我删除ng-controller =" page"从body标签开始,表达式开始得到评估。但是在将此控制器应用于body标签时,表达式往往被打印为文本而不是被评估。
以下是我的相关代码(Snippet):
<html ng-app="app">
<head>
<!-- links removed for brevity -->
<script>
var app = angular.module('app',[]);
app.controller('page',function($scope){
$scope.segment.name = 'asdf';
});
</script>
</head>
<body ng-controller="page" style="padding:0px;">
<!-- additional markup removed for brevity -->
<form class="navbar-form navbar-right" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Enter Portal ID" ng-model="page.segment.name"/>
</div>
<button class="btn btn-default">Search {{page.segment.name}}</button>
</form>
</body>
</html>
我可能在上面的代码中犯了一些错误,因为下面的代码我作为概念证明写得很好。
POC代码(Snippet):
<html ng-app="app">
<head>
<!-- links removed for brevity -->
</head>
<body ng-controller="page">
<a>Name : {{page.segment.name}}</a>
<input type = "text" ng-model="page.segment.name"/>
</body>
<!-- links removed for brevity -->
<script>
var app = angular.module('app',[]);
app.controller('page',['$scope',function($scope){}]);
</script>
</html>
请帮助 提前谢谢..
答案 0 :(得分:0)
您可能在控制台中收到错误消息。我猜它的类似于&#34;无法设置属性&#39; name&#39;未定义的。&#34;你在这里做的是无效的:
$scope.segment.name = 'asdf';
你需要这样做:
$scope.segment = {};
$scope.segment.name = 'asdf';
或者这个:
$scope.segment = { name: 'asdf' };
在尝试设置属性之前,必须显式创建segment
对象。