我在使用ng-model时遇到了问题。当我查看对象时,所有属性都为空:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mNavigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
mTitle = getTitle(); //*
// Set up the drawer.
mNavigationDrawerFragment.setUp(
R.id.navigation_drawer,
(DrawerLayout) findViewById(R.id.drawer_layout));
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#473641"))); // change the color of header
mDrawerList = (ListView)findViewById(R.id.listView);
mTitle = mDrawerTitle = getTitle();
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
// enabling action bar app icon and behaving it as toggle button
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,R.drawable.ic_menu, R.string.app_name,R.string.app_name)
{
public void onDrawerClosed(View view) {
getSupportActionBar().setTitle(mTitle);
// calling onPrepareOptionsMenu() to show action bar icons
invalidateOptionsMenu();
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
}
public void onDrawerOpened(View drawerView) {
getSupportActionBar().setTitle(mDrawerTitle);
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
// calling onPrepareOptionsMenu() to hide action bar icons
//invalidateOptionsMenu();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
getSupportActionBar().setIcon(R.drawable.ic_deals);
}
但是当我点击提交按钮时,它返回的是
答案 0 :(得分:2)
从plunker(虽然我无法运行你的代码),很明显你在表单中的两个不同场合使用相同的控制器PlayerController
。
这里发生的是
updateUser()
属性的方法ng-click
绑定到控制器{{1}的 新实例 }。因此,创建一个新的PlayerController
,并完全不知道对其邻近的同名控制器的范围属性(在这种情况下为scope
)进行了哪些更改。
edit
将整个表单包装在一个<div ng-controller="PlayerController">
<!-- ISOLATE region -->
<textarea ng-model="edit.someproperty"></textarea>
</div>
<div ng-controller="PlayerController">
<!-- Another isolate region unaware of the above -->
<button ng-click="updateUser(edit)">Update</button>
</div>
指令中,以便该范围内的所有内容(ngController
指令和方法ngModel
)使用相同的范围属性。
注意: 我还注意到您已将updateUser
包裹在ngController
内且不正确。 AngularJS中的form
强加了一个form
控制器对象,该控制器成为控制器的直接父控制器。实际上,使用FormController
创建的控制器旨在处理表单的逻辑而不是其他方式。