与玉形式的2路数据绑定

时间:2014-06-16 03:27:38

标签: angularjs pug

我尝试使用ngModel将两个文本输入字段附加到$ scope。这是我的代码:

extends layout

block content
    h1 hello from partials
    form(name='login') 
        label(for='username') username
            input(type='text' name='username' id='username' ng-model='credentials.username')
    br
    label(for='password') password
        input(type='text' name='password' id='password' ng-model='credentials.password')
    button(type='submit') submit

即使按下提交后,凭据也不会更改$ scope。它们默认设置为空字符串,并在提交后保持这种状态。我的玉石表格写得不正确吗?

控制器代码如下所示:

myApp.controller('mainController' , function($scope){
    window.scope = $scope;
    $scope.credentials = {username: '' , password: ''}
})

和layout.jade看起来像这样:

doctype html
html(ng-app='myApp')
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
  body
    div(ng-controller='mainController')
    block content
    script(src='//ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular.min.js')
    script(src='https://ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular-route.js')
    script(src='/javascripts/myApp.js')

1 个答案:

答案 0 :(得分:1)

您的block content未嵌套在您的控制器下,这就是ng-model未改变范围的原因。

这样可行:

div(ng-controller="mainController")
  block content

但是你可能还需要一个每页控制器(你仍然可以保留这个控制器 - 但控制器就像层次结构一样,与JS原型相同)